在C中打印文件中的字符数组时的奇怪行为 我看到一些奇怪的行为,我的C++函数的工作是简单地把n’(1)。

在C中打印文件中的字符数组时的奇怪行为 我看到一些奇怪的行为,我的C++函数的工作是简单地把n’(1)。,c++,C++,有人能解释一下吗 另外,我正在windows平台上使用codeblocks IDE。您正在返回一个局部变量的地址。当函数返回时,它将不再存在。让我找一个副本。另外,getSpaces(100)。谢谢你的回答!我注意到的另一件事是,当我尝试在函数中动态分配大小为n的内存(使用new操作符)时,它工作得很好。是因为我在退出函数之前没有删除动态分配的内存吗? char *getSpaces(int n) { char s[50]; int i = 0; for(i=0; i

有人能解释一下吗


另外,我正在windows平台上使用codeblocks IDE。

您正在返回一个局部变量的地址。当函数返回时,它将不再存在。让我找一个副本。另外,
getSpaces(100)
。谢谢你的回答!我注意到的另一件事是,当我尝试在函数中动态分配大小为n的内存(使用new操作符)时,它工作得很好。是因为我在退出函数之前没有删除动态分配的内存吗?
char *getSpaces(int n) {

    char s[50];
    int i = 0;

    for(i=0; i<n; i++) {
        s[i] = '1';
    }

    s[i] = 0;
    return s;
}
1111111111SOME_WEIRD_CHARACTERS_HERE