C++ :: Append Suffix To String With Pointer Arithmetic

Mar 1, 2013

Dynamic memory allocation and pointer arithmetic with char arrays.

The class was given to me in a very basic skeleton form with prototypes but no implementations, along with a test function to test my implementations. I CAN NOT use any C String functions in this assignment.

The part of the program which is troubling is the append function, which just appends a parameter string215 object to the end of the current string215 object.

// Add a suffix to the end of this string. Allocates and frees memory.
void string215::append(const string215 &suffix) {
char *output = new char[str_len(data)+suffix.length()+1];
for(int x = 0; x < str_len(data); x++) {
*output = *data;

[Code]...

This portion of the code is tested in the 13th test of the test function as shown here:

string215 str("testing");
...

// Test 13: test that append works in a simple case.
curr_test++;
string215 suffix("123");
str.append(suffix);
if (strcmp(str.c_str(), "testing123") != 0) {
cerr << "Test " << curr_test << " failed." << endl;
failed++;
}

Here is the description of the append class: Add the suffix to the end of this string. Allocates a new, larger, array; copies the old contents, followed by the suffix, to the new array; then frees the old array and updates the pointer to the new one.

My program aborts at the very end of the append function execution with the error message:

Debug Assertion Failed!

Program: [Source path]dbgdel.cpp
Line: 52

Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
...

Abort || Retry || Ignore

Here's a pastebin of the .cpp and .h file for this program

string215.cpp: [URL] ....
string215.h: [URL] .....

View 14 Replies


ADVERTISEMENT

C++ :: Creating And Joining String Objects - Suffix Increment Operator In Cout Statement

Mar 7, 2013

Here is the code:

// Creating and joining string objects
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::getline;
// List names and ages
void listnames(string names[], string ages[], size_t count) {

[Code] ....

I may be wrong, but the problem seems to be in the function "listnames". Specifically, the output statement inside the while loop. I don't understand , how the ++ operator is behaving in this statement. The output produced does not match what's printed in the book. I usually just type all the examples, but with this one I also downloaded the source code from the book's website to make sure the error wasn't due to mistyping.

View 4 Replies View Related

C++ :: Change From Array To Pointer Arithmetic?

Sep 12, 2013

#include <iostream>
#include <string>
using namespace std;

[Code]....

View 3 Replies View Related

C/C++ :: Pointer To A Function Used In Arithmetic Error

Nov 23, 2014

I'm working on a short program to calculate the mode of a vector of ints. I am new, so not extremely familiar with pointers, and passing items to functions. This is something I've struggled with (obviously, or I wouldn't be here). I am currently getting the following error when I try to compile this program using g++:

warning: pointer to a function used in arithmetic

I receive this error for the following lines: 66, 73, 75, 81.

I am not using pointers here so I do not understand why this error crops up, much less how to fix it. Here is the code I am struggling with:

#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <limits>
using namespace std;
vector<int> getModes(vector<int> userValues);

[Code] ....

The errors are on lines 54, 61, 63, and 69

View 3 Replies View Related

C++ :: Arithmetic Operators Overloading For Class With Pointer

Nov 11, 2014

I am stucked in a problem of overloading arithmetic operators such as "+,*" for a class in the form

class Point {
int N; // dimension of the point
double *Pos; // length of N
}

My assign operator is :
Point& Point::operator= (const Point& pt) {
N= pt.N;
if(Pos == NULL) Pos = new double[N];
memcpy(Pos, pt.Pos, N*sizeof(double));

[Code] ....

The add operator "+" is:
Point operator+( const Point& pt1, const Point& pt2 ) {
Point ptr = Point(pt); // this is a constructor
for (int i=0; i<pt1.N; i++) ptr.Pos[i] += pt2.Pos[i];
return ptr;
}

Based on the above overloading, What I am going to do is :

P = alpha*P1 + beta*P2; // alpha and beta are double constants, P1 and P2 are Points objes

It is ok with Intel C++ 14.0 compiler, but does not work with the microsoft visual c++ 2012 compiler in debug mode in visual studio 2012.

I stepped in those operators and found that visual c++ compiler deconstructs the ptr in operators "*" and "+" before its return while intel c++ finished the operation P = alpha*P1 + beta*P2; and delete those ptrs at last.

Portability of my operator overloading is worse. How to get those arithmetic operators overloading for class with pointers in it.

View 3 Replies View Related

C/C++ :: Multiplication And Division Operation Not Allowed With Pointer Arithmetic?

Jul 28, 2013

C++ only allow addition and subtraction operation with pointer .why multiplication and division is not allowed? Then how to perform multiplication and division with pointer

View 3 Replies View Related

C :: How To Append A Formatted String To A String

Aug 12, 2014

How to append a formatted string to a string. I know printf will print them, but I want to append them. Is there a way to do this. I am doing a little work with pointers, and I seem to have forgotten things like this.

View 2 Replies View Related

C++ :: Append Comma To A String - Dynamic Memory Allocation Error

May 16, 2012

Trying to append a comma to a string. Getting "Segmentation Error" on Solaris when the function is entered the second time.

Code:

// Appends a comma to the given string
void appendComma(char* instring) {
if (instring == NULL) {
instring = realloc(NULL, strlen(","));
strcpy(instring,",");

[Code] .....

View 14 Replies View Related

C :: Convert String To Arithmetic?

Mar 16, 2014

I've got this string: Code: char * string = "2+2"; I want to get an integer value = 4 from this. How would I go about doing this.

View 1 Replies View Related

C++ :: How To Convert Void Pointer To Int / Double / String Pointer

Mar 7, 2013

I have a function:

const void insertStuff(const void *key, const int value){
// I want to convert the void pointer into one
// of three types of pointers(int, string, or double)
switch(value){
case 0:
int *intPtr = key;

[Code] .....

But this causes an error of: "crosses initialization of int*intPtr"

What's the correct way of implementing this?

View 1 Replies View Related

C/C++ :: Copying A String From A Pointer To New Pointer

Mar 4, 2015

I need to make a copy of a string that is defined by char *full and copy it into a different pointer defined by char *duplicate. I have written code to do this however it will not work and i cannot figure it out my code is as follows:

char *duplicate = (char *)malloc(strlen(full) + 1);
strcpy(duplicate, full); /*Make second version of full*/
char *Ptr = strtok(duplicate, " "); /*Split duplicate up*/

I have a full program written but i know this is where the problem is because i have used printf statements to see where the program fails. I get no errors and it compiles successfully but it hits this point of the program and it just stops and windows automatically shuts down the program.

char *full is pointing to:
"To be, or not to be? That is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles,"

I need to duplicate the string because i need to use strtok but i will need the original string later on so i need an unaltered version.

View 9 Replies View Related

Visual C++ :: How To Append Two Bitmaps

Nov 28, 2013

Is there a way to append two bitmaps, one of them in a top of another one ? I mean arrange them like tile horizontally.

View 1 Replies View Related

C :: String Allocation To String Pointer

Feb 10, 2014

I am trying to read the string from user and the allocate it to the another string which is ptr string but not successful . Do I have to use any dynamic memory allocation here?

Code:
int main(){
char test[5];
char *strng, *base;
int i;
base=strng;
for(i=0; i<4; i++){

[Code]....

View 8 Replies View Related

C :: Append Integer To Char As A Count

Apr 15, 2014

I am trying to keep a count on a variable name stored within a structure as char*'s. They are of the same field and I do not know how many there will be so I would like to keep a standard name and append the count.

So say I have a variable name such as "desk", but as I have many of these said desks so I would like to call them "desk1", "desk2", "desk3" and so forth. Any recommendations on how I could do this?

Also since this is somewhat relevant is there an easy way to convert from an integer to a string, something that would work like atoi() in reverse? I wouldn't mind writing a method to do so myself but haven't a clue as to how.

View 5 Replies View Related

C :: Program To Append Text To TXT File

Mar 16, 2013

I am trying to understand how to append some code to a text file. I have run a simple program like the one below. Basically it opens a text file and then it appends the string aaaaaaaaaa

Code:
#include <stdio.h>
#include <io.h>
#include <stdlib.h>
char s[10] = {"
aaaaaaaaaa"};

[Code] .....

Now that I know how to append the above string, I now would like to extend the experiment to append the following snipped of code in my test.txt file:

Code:
<Placemark>
<name>12:01</name>
<Snippet maxLines="0"></Snippet>
<description>&nbsp;</description>

[Code] ....

How do I go about doing this? The problem I am experiencing is that all the / and " characters in the above snippet of code seems to get the C compiler confused. One thought I had was to create a string like the one below but as I mentioned, the number 0 in the code is surrpunded by " " and this confuses the compiler:

Code:
char s[250] = {"<Placemark>
<name>12:01</name>
<Snippet maxLines="0"></Snippet>

[Code] ....

View 3 Replies View Related

C++ :: Append Node To A Linked List

Jan 27, 2013

I have a function that append node to a linked list like this:

struct ListNode{
int value;
struct ListNode* next;
};
void appendNode(struct ListNode* head, int num){

[code] ....

when I use it, the head in main() does not change its address and it's still pointing to NULL. Why??

View 5 Replies View Related

C/C++ :: How To Append Txt File In Code Blocks

May 14, 2014

I've been using code::blocks to work on text files through fstream. But i cannot make it append using my code.

Here's my code:

#include <iostream>
#include <fstream>
using namespace std;
int main() {
fstream dataFile;
dataFile.open("demofile.txt", ios::out);

[Code] ....

View 2 Replies View Related

C/C++ :: Print Output With Append Data In TXT File

Oct 22, 2014

I was recently introduced to the fstream header file. I want to know is their a easy way to print an output with append data in a .txt file.

And secondly I am also having an error with my header file. It says error: cannot open source file "fstring" when I hover my mouse over "#Include<fstring>".

View 7 Replies View Related

C/C++ :: Possible To Append Numbers To The End Of Variable Names During Runtime?

Dec 6, 2012

I am trying to write a program that would convert numbers of base 10, decimal numbers, to binary or hexidecimal numbers, base 2 and base 16. I want the program to run a loop through the various numbers input and store each number converted to the new type in a separate variable with the same basic name but different last letters/digits to differentiate between them and add them to the total.

Basically, I'm saying that i have the user input a number and letters. Let's say 15, d, b. So they want to convert 15 of decimal type to binary.

The program would then take the variable used to hold that number, and the other to variables to decide what function to perform on the number.

Then I will already have a variable initialized for the 3 possible conversions (binaryKey[], decimalKey[], hexideciKey[])

Then I want it to convert it and store the number at different places in the array to form the final number. Although, there is no way to predict what number the user will input, so there is no way of knowing initially where the converted place-value will need to be placed in the array.

I was wondering if there was a way to have the program run a loop where as the progression continues, it appends a number to the end of a universal name for the variables and then adds them together in the correct order creating the sequence that means that number.

In simpler terms:

Input a number: 15
Input type of base: d
Input converted type: b

Program then continually divides the number by 2, storing the remainder in a new variable

Such as: for(int i=1, i < (str(number).len), i++){
when i = 1, you would get
int number1;

[Code] ....

and so on. Is there a way to do this???

View 5 Replies View Related

C++ :: Append More Characters After Newline Character In Txt File

Apr 26, 2014

I'm trying append more characters to a txt file after write title of foreground window and a newline character, but after first character, the next appear after a newline. Here is result => [URL].... and here is my code:

I'm using Dev C++ 4.9.9.2 compiler.

Code:

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
using namespace std;
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);

[Code]....

I have made some changes for this =>

Code:

if (str_window)
strcpy(str_window,str_window);
strcat(str_window,"
");
log(str_window);

[Code]...

Now print only first character in digitation after title of active window. Still printing wrong see => [URL]..... Word "good" as sample.

View 10 Replies View Related

Visual C++ :: Unable To Append Data To CFile Using FILE

Sep 26, 2012

I'm trying to append data to a CFile using FILE* But when execute the application, it always give error saying "No such file or directory". I can actually see the file created but it just keep giving error "No such file or directory".

Is the file being lock or the file just created so it can not be find by fstream(FILE*)? or the file mode is wrong?

Below is the code:

[QUOTE]
void SaveDocument(CString strFile) {
CFile file;
if( !file.Open(strFile, CFile::modeCreate | CFile::modeWrite | CFile::shareDenyNone)) {
CArchive ar(&file, CArchive::store);
// save now.
MyClass.Serialise(ar);

[Code]...

Attached is the printscreen of the FILE* pointer. the pointer is evaluated as bad pointer. Why the FILE* pointer not able point to the file being created?

View 7 Replies View Related

Visual C++ :: Using Template To Append Item Of Type T To Node Of Ptree

Jan 5, 2014

What my purpose here is to use a template to append an item of type T to a node of a ptree (boost)

Code:
template<typename T>
ptree& stick(ptree& tree, char *location, T const & t) {
return tree.add(location, t);
}

Here I can't compile

Code:
struct hdr {
WORD weights_per_vertex;
WORD weights_per_face;
WORD num_bones;

[Code] ....

Doesn't the type of T includes the type struct hdr?

View 3 Replies View Related

C/C++ :: Arithmetic Using A For Loop?

Feb 15, 2013

One thing that I was not able to fully understand even though I read through the section on it a few times, is the for loop. I mean, I understand the premise of (statement, condition, update statement). However, I do not quite understand how a math problem is affected by this.

How this works using multiplication and division? And lastly, why would you use a do.. while loop?

View 1 Replies View Related

C :: Append Data To Array Of Structures In Memory Then Put In File When Program Ends

Dec 4, 2013

I have a program that stores health information the user inputs, one person at a time. The program works perfectly with the exception of storing the data...I need to open a file and read what health data it has in it already, if any, but store the new changes, and appended data to the array of structures, to the data in memory. All of the information is only saved back in the file once the program terminates. I'm not sure how to go about doing this, so I am also not sure what to put in the function for "Save and Exit" that the user can choose in order to exit the program.

Code:

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
struct strdatabase
{
char first[20];
char last[20];
char gender[2];

[Code]...

I tried playing around with this bit of code, but I'm not sure if I'm even on the right track.

Code:

FILE *fp;
fp = fopen ("students.txt","rb"); fseek(fp, 0, SEEK_END);
long pos = ftell(fp);
fseek(fp, 0, SEEK_SET);
char *bytes = malloc(pos);
fread(bytes, pos, 1, fp);
fclose(fp);

View 9 Replies View Related

C++ :: How To Create BST For Arithmetic Expression

Jan 15, 2015

I am a c++ leaner, I am trying to create a BST tree for this expression: 2346*+/8+, and do inorder and postorder to get the in-fix version, and postfix version of the expression. I am having difficulty to create the binary tree for the expression. Here is my peso code:

Tree:
Stack:
inorder fn{}
postorder fn{}
main{
input the file;
while(expression){

[Code] ....

The tree I want to create is like this
+
/
(/) 8
/
+ 2
/
* 3
/
4 6

My problem for this code is that after create (4*6) tree, I cant link (+3) with (4*6).

View 1 Replies View Related

C/C++ :: Printing Out Arithmetic Sequence

Oct 6, 2014

I made a program that prints out arithmetic sequence.. but problem is that,

when I enter a(first term) =5, d(differnce)=2.4 and n=3 the program prints out only first two terms not three.. for all the other numbers it works correctly..

View 1 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved