我想在分配动态内存后更改char指针的内容,是否可能?如果没有,为什么?我的程序抛出运行时错误.
#include <stdio.h>
int main()
{
char * str = (char *) malloc (10 * sizeof(char));
str = "Hello";
str[2] = 'L'; // here the program throws run time error
printf("%s", str);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
指向时str = "Hello";你没有复制"Hello"到指向的地址str.相反,您指向str字符串文字,并修改它是UB - >运行时错误.
如果要复制Hello要str使用的字符串的内容strcpy.
正如@LethalProgrammer所指出的那样:使用char[10]而不是char*允许你修改内容
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |