C++ :: Initialization Of Pointer Arrays
Jan 1, 2014
The below example is an initialization of a pointer array:
char *month_name(int n) {
static char *name[] = {
"Illegal month",
"January", "February", "March",
"April", "May", "June",
"July", "August", "September",
"October", "November", "December"
};
return (n < 1 || n > 12) ? name[0] : name[n];
}
Here we have an array of character pointers. The pointers are stored in name[i]. And they point to the characters of the i-th string, which are stored somewhere else in memory. But Is the character pointer pointing to the first character in the character string that is stored somewhere else in memory? I assume so because a string itself is an array of characters. And if that is the case, how does the pointer know what the last character should be? Does it just search for the null terminator?
View 2 Replies
ADVERTISEMENT
Apr 27, 2013
Here is a function,which deletes the spaces of a string...
char *removespaces(char *s1) {
Code: char *s2=s1;
int i,j=0;
for (i = 0; i<strlen(s1); i++){
if (s1[i]!=' ') {
s2[j]=s1[i];
[Code] .....
why I have to initialize the pointer *s2 with the first element of the array s1...???If I don't initialize the pointer,or initialize it with something else,I get a segmentation fault...
View 10 Replies
View Related
Apr 28, 2013
I would like to initialize an arry containing function pointers with adresses of functions that have a variable number of arguments.
Below the code that works in principle. I would however get rid of the warning message during compilation pointing to the initialzation of the funtion pointers in the array. How do I need to cast the pointers to the functions ?
Code:
gcc func_ptr_init.c
func_ptr_init.c:28: warning: initialization from incompatible pointer type
func_ptr_init.c:32: warning: initialization from incompatible pointer type
Code:
#include<stdio.h>
unsigned char func1_ptr(unsigned int* if_desc, int* result_code) {
*if_desc = 1;
*result_code = 1;
return(0);
[Code] ....
View 8 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
Jan 6, 2014
I am confused whether 'malloc'ing an array of pointers and pointer to a group of arrays are the same.
Suppose I need an integer pointer to a group of arrays of 2 elements each.
int (*LR)[2];
So to dynamically allocate this pointer for M number of arrays suppose, then what is the correct syntax?
int M;
scanf("%d",&M);
int (*LR)[2];
LR = (int*)malloc(2*sizeof(int));
Whether this is correct??
View 14 Replies
View Related
Jan 31, 2013
Do I really need to create a separate pointer to point to dynamic arrays?
T* temp = new T[capacity_ * 2];
T* tIter = &temp; //Do these need to be here?
T* dIter = &data; //Or can I use *(temp + i) and *(data + i)?
(for unsigned int i = 0; i < size_; i++) {
*(tIter + i) = *(dIter + i);
}
View 7 Replies
View Related
Feb 3, 2015
If i have a pointer array of classes, e.g. MyClass *foo; and if i try to delete this pointer delete [] foo; does it call a destructor of a class, or wahat happens? this is because i have another pointers in that class which are cleared in destructor.
View 1 Replies
View Related
Oct 15, 2014
I'm trying to write a program to test if a string is palindromic using only pointers
Code:
#include <stdio.h>
#include <string.h>
void revstr(char* str)
}
[code]....
I need to change the arrays in the function int palin to pointers.
View 4 Replies
View Related
Jun 8, 2014
I have not been using pointers that long i most of my stuff has not needed them but now they do i need to learn how to use them more. I'm writing a program that simulates the squares most landed on(for fun) and i cant get a method to work because of an array pointer.
The error is no matching function for call to 'GameLoop::Loop(int, int (*)[4])'
Here is the latest version of the code. I've been editing a lot of things so there might be some stupid errors but I've tring everything.
rolling.h and rolling.cpp are just some dice function they are working perfect.
main.cpp
#include <iostream>
#include "Rolling.h"
#include "GameLoop.h"
Rolling Roll;
GameLoop Game;
[Code] ....
View 2 Replies
View Related
Apr 4, 2014
In a book I'm reading, the author has the following struct:
struct VertexPos {
XMFLOAT3 pos;
};
Where XMFLOAT3 is a structure with x,y,z floating point values within. He declares and initializes an array as the following.
VertexPos vertices[] =
{
XMFLOAT3(0.5f, 0.5f, 0.5f),
XMFLOAT3(3.3f, 5.6f, 3.6f),
XMFLOAT3(-4.5f, 2.2f, 6.4f)
};
It doesn't make sense to me why this is working. The way my mind is thinking about this is that vertices is an array of type VertexPos, so then why can it be initialized with objects of type XMFLOAT3?
View 2 Replies
View Related
Nov 17, 2014
I have a class containing a map member that I want to initialize at declaration time. I know I can do it in the cpp file but I'm having a problem with the order of initialization (static initialization order fiasco).
My questions are:
Is it possible that the scenario in which, the Test's constructor's implementation and the map initialization instruction are in the same cpp file and constructor is called when the map is not initialized yet, could happen?
Is it possible to initialize the map in class like I did? I get these errors:
in-class initialization of static data member 'std::map<std::basic_string<char>, Test*> Test::a' of incomplete type
temporary of non-literal type 'std::map<std::basic_string<char>, Test*>' in a constant expression
If yes, does this initialization resolve the static initialization order fiasco?
class Test {
public:
static std::map<std::string, Test*> a = {};//this is an error
Test(std::string ID) {
[Code] ....
View 4 Replies
View Related
Nov 16, 2014
I have a custom struct hierarchy that goes vaguely like this:
struct Base
{};
struct Derived1 : public Base {
int num;
[Code] .....
I'm using "Base" simply as an umbrella struct, so I can access any of the derived structs with a "base" reference(&).
The issue I'm having is, I have a class that has a data member that is a reference to the struct "Base" but, I'm getting an error that says my constructor for this class doesn't provide an initialiser for that data member.
I've tried intialising a derived object for the reference, like so:
MyClass:MyClass() {
Derived1 d1;
d1.num = 0;
mBaseRef = d1;
}
But, it doesn't work...
View 1 Replies
View Related
Jan 19, 2015
I tried to initialize the frames variable but when I go to debug it, it just gives me 30 errors compared to the one error when I don't initialize the frames variable.
#include "Gfx.h" // general gfx lib I made for SDL
#include "Input.h"
#include "General.h"
#include "Sprite.h"
#define screenw 620
#define screenh 480
/** CHARS ARE DONE */
//int mousex; int mousey; int mouseon = 0;
//int red = 0; int green = 0; int blue = 0;
[Code] ....
View 4 Replies
View Related
May 5, 2013
I've a problem with the map construct. I wrote this class in which there are maps:
class Features {
private:
map<const string,GenericFeatureContainer*> featuremap;
map<const string,GenericFeatureContainer*>::iterator it;
int size;
public:
}
And I have the following constructor:
Features::Features() {
map<NULL,NULL> featuremap;
it=NULL;
size=0;
}
Is that correct? otherwise what is the correct syntax?
View 2 Replies
View Related
Jul 8, 2014
How exactly would one go about throwing an exception from an object's constructor?
Take a look at this snippet:
#include <iostream>
#include <exception>
class ExceptionFoo : public std::exception {
virtual const char* what() const throw() {
[Code].....
View 8 Replies
View Related
Feb 25, 2012
Code:
#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#define FILEPATH "./input.txt"
#define FILEPATH2 "./copy.txt"
[Code] ....
The problem is probably the fact that I'm using the variable s in the wrong way, but as I'm very bad at C and C++, at least so far anyway, I've no clue what's wrong. Is it my size that I passed in the marked method?
Also, how do I tell it, later, once this starts to work, to pass the file name of the file it'll copy to as the first param and the file it reads from to the pipe as the second param?
I'm supposed to be reading from a file, and as I was given some code, but it's probably in C and not C++, even if it is, I'm still not that great at C++ either, but anyway, I'm to have the program read from the file and write to the pipe and have the child read from the pipe and write to the output file.
FileCopy copy.txt input.txt
View 14 Replies
View Related
May 16, 2013
The following is something I am not clear about. Multi dimensional char arrays and the displaying of them.
Code:
#include <iostream>
using namespace std;
main() {
//char test[5][5]
[Code] .....
The commented out expression didn't run at all but the double quotation mark one did, unfortunately, it gives me a hexadecimal display. How can I get it to display like this:
*****
*****
*****
*****
*****
View 5 Replies
View Related
May 9, 2014
I'm not understanding why the string provided for initialization is too long?
Code:
int main()
{
char array[1] = "A";
return 0;
}
View 6 Replies
View Related
Jun 5, 2013
I am having a problem concerning a static const member variable I want to use to set a certain property of my class during development time. The question actually concerns proper implementation as I do have a solution that "works" at least. The variable should denote the size of a member array which I don't want to allocate on the heap due to serious performance issues. So here is my code:
//MyClass.h
class MyClass{
public:
static const int MyArraySize = 256;
private:
int MyArray[MyArraySize];
};
This works but it's not nice for two reasons:
1) It doesn't separate interface from implementation. I would prefer to define the variable in the corresponding .cpp file but it doesn't work:
//MyClass.h
class MyClass{
public:
static const int MyArraySize;
[Code] .....
If I delete the line int MyArray[MyArraySize]; the above code works but when I use it to define the size of the array I get a "constant expression expected" error for the line int MyArray[MyArraySize]; which makes sense as the compiler does not know the value of MyArraySize when he reaches int MyArray[MyArraySize]; and therefore can not allocate the memory. Of course I can move MyArray to the heap like that:
//MyClass.h
class MyClass{
public:
static const int MyArraySize;
static const int MyValue;
[Code] .....
But as I mentioned before this causes a remarkable loss of performance.
Something like the following does not work:
//MyClass.h
class MyClass{
public:
static const int MyArraySize = (int) pow(2, 8);
private:
int MyArray[MyArraySize];
};
This gives a "constant expression expected" error for the line static const int MyArraySize = (int) pow(2, 8);
Interestingly the following code works:
//MyClass.h
class MyClass{
public:
static const int MyValue;
};
//MyClass.cpp
#include "MyClass.h"
const int MyClass::MyValue = (int) pow(2, 8);
So if I use pow outside of the class definition I get no errors. Is there any solution to those problems? So what I want is:
1) Don't allocate the array on the heap
2) Separate interface from implementation
3) Being able to use functions like pow to define MyArraySize
4) Not use global variables
View 19 Replies
View Related
Jun 17, 2014
i'm currently working on a research project and i've been given some specifications
Is there a way i can access/use the array initialisation list i.e
{value,value,value}; .
For my own class? Like this
myclass foo={value,value,value};
View 3 Replies
View Related
Oct 12, 2013
The error is : invalid initialization of reference of type 'ArrayT<float>&' from expression of type 'const Arrat<float>'...The above errors occur when I tried to do the following code , with operator* overloading :
const ArrayT<float>& b1 = A*A;
ArrayT<float>& c2 = b1*A;// <---- this line makes the error
//b1 is a const ref of ArrayT<float>
//A is just a normal object of ArrayT<float> created by ArrayT<float> A(blah,blah,blah);
The following are the list of operator* overloading :
template <class T>
ArrayT<T>& ArrayT<T>::operator*(ArrayT<T>& b) {blah,blah,blah}
template <class T>
const ArrayT<T>& ArrayT<T>::operator*(ArrayT<T>& b) const
[code]....
I want to use for error multiplication above, but not success.
View 15 Replies
View Related
Nov 18, 2014
I am trying to create a `std::map` from `std:: string` to a pointer to member function type. I'm initializing the `map` with an initializer list (braced). When I compile, I get a message from the compiler: No matching constructor for initialization.
Example: [URL] .....
View 4 Replies
View Related
May 19, 2013
How do you set all the entries in an array to 0 or a particular number...
View 3 Replies
View Related
Apr 9, 2014
Here's a part of my program. What I need to know is how I can pass an argument to the Book constructor so I can change the const data member Category (with cascading capacity if possible. I also posted some of my set functions for further comprehension.
class Book {
friend void CompPrice(Book &,Book&);
//friend function that has access to the member functions of this class
//The arguments sent to it are by address, and of type the class Book, so that it can have access to its member functions
private:
//private data members
[Code]...
View 1 Replies
View Related
Dec 18, 2013
Is it possible to initialize class member variables in their definition statement instead of using a constructor?
Is the code bellow correct?
class rectangle
{
float a=0;
float b=0;
public:
string color="Red";
...
};
Which C++ Standard allows it?
View 2 Replies
View Related
Mar 28, 2013
I'm having trouble declaring and initializing a two-dimensional array using the C++11 standard conventions. I would like to know how to do it in C++11 style as know how to use the old style.
the exception im getting is:
c++11_array_exp.cpp:37:3: error: too many initializers for ‘std::array<std::array<std::basic_string<char>, 6ul>, 22ul>’
you can find my code here:
[URL]
View 3 Replies
View Related