C++ C++;Ints初始化数组的指针
我想让一个数组可以被一个类的所有函数访问 我将数组作为私有变量放在头文件中C++ C++;Ints初始化数组的指针,c++,arrays,initialization,fill,C++,Arrays,Initialization,Fill,我想让一个数组可以被一个类的所有函数访问 我将数组作为私有变量放在头文件中 private: int* arrayName; 在实现该类的.cpp文件中,构造函数接受int值(size)并创建数组。目标是填满它 ClassName::ClassName(int numElements){ arrayName = new int[numElements]; //make arrays the size of numElements for(int i = 0; i<
private:
int* arrayName;
在实现该类的.cpp文件中,构造函数接受int值(size)并创建数组。目标是填满它
ClassName::ClassName(int numElements){
arrayName = new int[numElements]; //make arrays the size of numElements
for(int i = 0; i<numElements; i++)
arrayName[i] = 0;
}
ClassName::ClassName(整数){
arrayName=new int[numElements];//使数组的大小为numElements
对于(int i=0;i您可以使用memset
功能:
memset(arrayName,0,sizeof(int)*numElements);
此void*memset(void*ptr,int-value,size_t num);
函数将ptr
指向的内存块的第一个num字节设置为指定值(解释为无符号字符)
要使用它,必须包含string.h
头文件
有关详细信息:您可以使用memset
功能:
memset(arrayName,0,sizeof(int)*numElements);
此void*memset(void*ptr,int-value,size_t num);
函数将ptr
指向的内存块的第一个num字节设置为指定值(解释为无符号字符)
要使用它,必须包含string.h
头文件
有关详细信息:如果要对新数组进行零初始化,只需对其进行值初始化。这具有零初始化其元素的效果:
arrayName = new int[numElements]();
// ^^
但是您确实希望使用std::vector
通过这种方式,您不必担心删除数组和实现复制构造函数和赋值运算符。如果要对新数组进行零初始化,只需对其进行值初始化。这具有零初始化其元素的效果:
arrayName = new int[numElements]();
// ^^
但是您确实希望使用std::vector
这样,您就不必担心删除数组和实现复制构造函数和赋值运算符。您要做的是根据需要逐步扩展数组
arrayName = new int[numElements];
for(int i = 0; i<numElements; i++)
arrayName[i] = 0;
arrayName=newint[numElements];
对于(int i=0;i您要做的是根据需要逐步扩展阵列
arrayName = new int[numElements];
for(int i = 0; i<numElements; i++)
arrayName[i] = 0;
arrayName=newint[numElements];
对于(int i=0;i你的私有变量只是一个指针。不是一个数组,不是指向数组的指针。有些东西必须将内存归零;无论是你还是库函数。没有迭代就无法神奇地将内存归零。你的私有变量只是一个指针。不是数组,不是指向数组的指针。有些东西必须将内存归零;这是什么呃,这是你或者一个库函数。如果不迭代它,就无法神奇地将内存归零。