c++ - 一个函数知道它的参数占用多少内存吗?

标签 c++ c function memory

当我们调用按值传递的函数时,我们在内存中复制了实际参数的值。

问题是:函数是否知道它的参数在内存中占用了多少空间?如果答案是肯定的,我们如何在函数范围内检索它?

如果答案是否定的,我们是否有潜在的隐藏内存错误?

考虑这个例子:

#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/

相关文章:

r - ggplot 在函数中不起作用,以字符串形式传入变量名

function - 如何收集加载中的函数返回值

列中的 SQL 函数运行缓慢

c++ - 在 C++ 应用程序中使用 C MPI 语法

C++ getline() 不结束输入

c - 如何在 C/C++ 中从空格分隔的整数获取输入?

c++ - "undefined behaviour"是否扩展到编译时?

c - 针对 glib 进行编译时出现链接器错误...?

c++ - 尝试使用 std::thread 时出现编译器错误

c++ - 使用 IDE 构建 Emscripten 项目?