C语言中的字符串(我是C语言中的新手)
我是C语言的新手,所以这可能是一个愚蠢的问题,但我不知道该怎么办。这是我的问题: 为什么这个代码什么都不打印C语言中的字符串(我是C语言中的新手),c,string,C,String,我是C语言的新手,所以这可能是一个愚蠢的问题,但我不知道该怎么办。这是我的问题: 为什么这个代码什么都不打印 #include <stdio.h> #include <stdlib.h> void function(char* valor); main() { char* valor; int s; valor=(char*)malloc(101*sizeof(char)); function(valor); printf("%s\n",v
#include <stdio.h>
#include <stdlib.h>
void function(char* valor);
main()
{
char* valor;
int s;
valor=(char*)malloc(101*sizeof(char));
function(valor);
printf("%s\n",valor);
return 0;
}
void function(char* valor)
{
valor="ciao";
}
#包括
#包括
虚函数(char*valor);
main()
{
勇气;
int-s;
valor=(char*)malloc(101*sizeof(char));
功能(勇气);
printf(“%s\n”,valor);
返回0;
}
无效函数(char*valor)
{
valor=“ciao”;
}
这是我想要的字符串吗?(“ciao”)
#包括
#包括
main()
{
勇气;
valor=(char*)malloc(101*sizeof(char));
valor=“ciao”;
printf(“%s\n”,valor);
返回0;
}
函数中的变量valor
和main中的变量valor
是不同的变量
当您在函数中更改
valor
的值时,main中的valor
不会发生任何变化。您的函数()
将其“valor”指针的内部副本设置为指向字符串常量。main()
堆栈中的原始副本保持不变,即垃圾(或可能为零)。FYI:您正在分配内存并向其分配指针。然后将指针重新分配给一个静态字符串,该字符串将放弃分配的内存。内存泄漏!
#include <stdio.h>
#include <stdlib.h>
main()
{
char* valor;
valor=(char*)malloc(101*sizeof(char));
valor="ciao";
printf("%s\n",valor);
return 0;
}