当我们调用按值传递的函数时,我们在内存中复制了实际参数的值。
问题是:函数是否知道它的参数在内存中占用了多少空间?如果答案是肯定的,我们如何在函数范围内检索它?
如果答案是否定的,我们是否有潜在的隐藏内存错误?
考虑这个例子:
#include <stdio.h>
void func(char * X)
{
X +=98;
*X='C'; //is this really OK? or we have hidden memory error?
*++X='\0';
--X;
puts(X); }
int main()
{
char A[100];
char *B =A;
func(B);
return 0;
}
最佳答案
您有一个潜在的隐藏错误。不要手动做那些废话,你自己总是使用像 std::string
这样的东西。
关于c++ - 一个函数知道它的参数占用多少内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30568645/