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
ADVERTISEMENT
Sep 12, 2013
#include <iostream>
#include <string>
using namespace std;
[Code]....
View 3 Replies
View Related
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
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
View Related
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
Nov 30, 2013
I have a class Calendar which has an attribute of priority queue, that accepts records of structure defined as:
typedef void (Calendar::*eventPointer)();
struct activationRecord {
double Time;
int Priority;
eventPointer activationEvent;
};
And here is the problem. Whole day I've been trying to fill the Calendar with some test entries by calling the method
void Calendar::calendarPush(double Time, int Priority, eventPointer event)
This is how I call it
calendar.calendarPush(Time, Priority, &Calendar::calendarEmpty);
But Visual Studio keeps to warn me with this error
argument of type "bool (Calendar::*)()" is incompatible with parameter of type "eventPointer *"
#include <iostream>
#include "Calendar.h"
using namespace std;
int main() {
cout << "Initializing ..." << endl;
double Time = 0.0;
int Priority = 0;
[Code] ....
View 4 Replies
View Related
Sep 4, 2012
I am trying to use 'this' pointer but i am confused why 'this' pointer is not available for static member functions.
Code:
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
const int MAX = 20;
const int MAXPTR = 100;
class name {
private :
char fname[MAX], mname[MAX], lname[MAX];
[code].....
I am using GNU GCC Compiler via Code::Block
Error : 'this' is unavailable for static member functions
View 4 Replies
View Related
May 6, 2014
I declared all functions in header file, such as:
bool readCase();
bool meshing();
bool readMesh();
bool calculateFlowfield();
bool readFlowfield();
bool calculateEvaporation();
And then I define them in separated .cpp files, each .cpp file include the header, but I got multiple definition error, why?
Even the int main() function, which only decalred and defined once got this error, why?
View 14 Replies
View Related
Mar 14, 2013
I'm trying to call a function via a function pointer, and this function pointer is inside a structure. The structure is being referenced via a structure pointer.
Code:
position = hash->(*funcHash)(idNmbr);
The function will return an int, which is what position is a type of. When I compile this code,
I get the error: error: expected identifier before ( token.
Is my syntax wrong? I'm not sure what would be throwing this error.
View 3 Replies
View Related
Aug 19, 2014
I am attempting to implement function pointers and I am having a bit of a problem.
See the code example below; what I want to be able to do is call a function pointer from another pointer.
I'll admit that I may not be explaining this 100% correct but I am trying to implement the code inside the main function below.
class MainObject;
class SecondaryObject;
class SecondaryObject {
public:
[Code]....
View 10 Replies
View Related
Jul 20, 2013
The program should ask the user how many students were surveyed and dynamically allocate an array of that size. The program should then allow the user to enter the number of movies each student has seen.
#include <iostream>
#include <string>
using namespace std;
[Code].....
The problem I'm having is that where I declare movies = [numStudents]; the semicolon after the numStudents array is giving me this error - "error: expected a '{' introducing a lambda body".
View 2 Replies
View Related
Apr 3, 2015
I have attached the source code I am writing. I have been getting the two following errors. I know it's something to do with the pointer casting.
udp-server.c:174:3: error: subscripted value is neither array nor pointer nor vector
udp-server.c:165:3: error: cannot convert to a pointer type
The file is attached here.
udp-server-edit.txt (7.64K)
Number of downloads: 19
View 3 Replies
View Related
Feb 21, 2015
I've been writing the math functions for a 3d game and tried compiling it at about 30 functions in. I get this error related to my pointers to my structures. it affects almost everything in all my functions (as youll see by looking at how i do the math in the function below). The compiler gives me the error
"error: dereferencing pointer to incomplete type"
on all my struct Type4D pointers but referencing the values in my struct TypeMatrix4X4 using pointers seems to work fine i think (it doesn't seem to complian explicitly about it. so here is the important code...
one example function
Code:
struct Type4D *MatVecMult4X4RtoL(struct TypeMatrix4X4 *mat, struct Type4D *vec) {
struct Type4D *dest = (struct Type4D *) malloc(sizeof(struct Type4D));
[Code]....
View 2 Replies
View Related
Jul 10, 2013
I am having trouble with this program I get the error dereferencing pointer to incomplete type in the populate function I am using BloodShed's Dev C++ compiler v4.9.9.2 I copied this program out of a book because I was having a problem with a linked list in a similar program. I think there is a problem with the compiler not supporting these types of pointer's in a function.
#include <stdio.h>
struct tel_typ {
char name[25];
char phone_no[15];
struct tel_typ *nextaddr;
[code].....
View 3 Replies
View Related
Sep 13, 2014
I am getting this error:
drivers/media/video/mxc/capture/gt2005.c:2256:62: error: dereferencing pointer to incomplete type
I am at a loss trying to figure this out. Here it is:
case Sensor_Flash:
{
struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd));
struct sensor *sensor = to_sensor(client);
if (sensor->sensor_io_request && sensor->sensor_io_request->sensor_ioctrl) {
sensor->sensor_io_request->sensor_ioctrl(icd->pdev,Cam_Flash, on);
if(on){
Lines 6 and 7 are giving me the same error. What am I doing wrong?
View 14 Replies
View Related
Apr 8, 2012
Below is my code snippet.I'm getting "Error:initialization from incompatible pointer type" error on line 'int *q = status;'.
Obviously, I'm missing something but has no clue...:(
void findwalls(int *p,int y,int x){
int status[y_count][x_count][4];
int *q = status;
for(int i = 0;i < (y_count * x_count * 4);i++)
*(q + i) = *(p + i);
View 1 Replies
View Related
Oct 8, 2014
Here is my code,
Code:
class A {
public:
void display() {
cout<<"A"<<endl;
[Code] .....
The compiler error is "error C2039: 'display' : is not a member of 'SP<T>'". What am I missing here?
View 14 Replies
View Related
Aug 6, 2012
My code compiled well(After long Messing up with my head). But, i still not satisfied of my output as i expected. My code ought to sort the object of person comparing their salary. But, its not.
Code:
#include <iostream>
#include <string>
using namespace std;
class person {
protected :
string name;
float salary;
[Code] ....
It doesn't sort the object of class person rather than it prints out the stored value as it is.
View 3 Replies
View Related
Nov 27, 2014
im trying to port a code from vc6 to vs2013 and im having this error
Code:
Error11error C2440: 'initializing' : cannot convert from 'char *' to 'std::_Vector_iterator<std::_Vector_val<std::_Simple_types<char>>>' on this line
Code:
vector<char>::iterator BufIt = (char*)lpBuffer;
what i do with this is to stack fragments of data of type char* coming from a socket in buffer to a vector that acts as buffer, I do this since I transfer big chunks of data and the data gets fragmented by the nature of the sockets, I stack the data once its complete I retrieve the final result from the vector.
this code worked flawlessly for long time but now Im trying to port and compiler throws this error, whats the new way to assign a char array pointer to a iterator so i can stack it in the vector.
View 5 Replies
View Related
Oct 26, 2014
==39800== Invalid free() / delete / delete[] / realloc()
==39800== at 0x4D9D: free (vg_replace_malloc.c:477)
==39800== by 0x10000C471: Tokenizer::~Tokenizer() (in ./a.out)
==39800== by 0x10000C424: Tokenizer::~Tokenizer() (in ./a.out)
==39800== by 0x100001B8B: main (in ./a.out)
==39800== Address 0x10002a778 is 8 bytes inside a block of size 7,208 alloc'd
[Code] ....
View 4 Replies
View Related
Apr 25, 2013
I having a problem which I'm not able to resovle. I try to dereference a void pointer but I always get a C2440 error. It says: 'static_cast':void* cannot be converted in wqueue<T>. I tried different cast ways but I always get the same error. As far as I found out I should get the error if I try to dereference without cast but in my case I cast before and still get that error.
void *srumbler (void *arg) {
wqueue<workclas*> m_queue= static_cast<wqueue<workclass*>>(arg);
return NULL;
}
The according type wqueue in the header file:
template <typename T> class wqueue {
list<T> m_queue;
pthread_mutex_t m_mutex;
pthread_cond_t m_condv;
[Code] .....
View 3 Replies
View Related
Sep 29, 2012
I was trying to write a character controller but when I went to add my pointer to my character I get error
C2143: syntax error : missing ';' before '*'
I've looked at all my classes involved but I don't see any errors and Visual Studio doesn't report any other specific errors. Is there any way of finding the source of this type of error?
View 4 Replies
View Related
Jan 22, 2013
getting an invalid null pointer error message after a successful build. This program is supposed to ask for firstName, lastName, age and maJor and keep doing so until the age that is input is 0 and then the program closes. Here is what I have.
#include <iostream>
#include <string>
using namespace std;
[Code]....
View 3 Replies
View Related
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
Jul 6, 2014
error says "cannot convert 'int*' to 'int' in function main()
and also
type mismatch in parameter in function sort(int,int)
Heres the code:
#include<iostream.h>
#include<conio.h>
void main() {
void sort(int,int);
clrscr();
[Code] .....
View 11 Replies
View Related
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