我正在学习C中的动态内存.我学到的作为分配和标准的标准方式例如,为任何数据类型动态解除分配
//For double,
double* pvalue1 = nullptr;
pvalue1 = new double;
*pvalue1 = 17.3;
delete pvalue1; //free up when I'm done
但是,对于一个char数组,我了解到它的处理方式不同:
char* pvalue2 = nullptr;
pvalue2 = new char[6];
strncpy(pvalue2,"Hello",sizeof("Hello"));
std::cout << "Pointed-to value of pvalue2 is " << *pvalue2 << std::endl;
std::cout << "Value of pvalue2 is " << pvalue2 << std::endl;
delete [] pvalue2; //free up when I'm done
然后,在命令提示符下:
Pointed-to value of pvalue2 is H
Value of pvalue2 is Hello
>为什么指针pvalue2给出“指向”字符串文字
而不是内存地址?不是“指针值”总是它指向的内存地址吗?
>为什么解除引用只给出数组中的第一个字符?
>在这种情况下,如何获取内存地址?