我试图在初始化字符串初始化,然后把它传递给诠释main()的屏幕输出,但似乎已初始化字符串已损坏。
标头
#include<stdio.h>
#include<stdlib.h>
初始化
void
Initialize(char* STRINGs)
{
STRINGs = malloc(sizeof(char)*5);
STRINGs = "hello" ;
printf("1: %s\n",STRING);
}
主要的
int
main (char* STRINGs)
{
Initialize(STRINGs);
//The program stops working when it reaches this section
printf("2: %s",STRINGs);
return 0;
}
您可以使用:
void Initialize(char** STRING)
反而:
void Initialize(char* STRINGs)
因为您想更改STRING指向的地址
你也有错误的原型 main
尝试:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void Initialize(char** STRING)
{
*STRING = malloc(6);
strcpy(*STRING, "hello");
printf("1: %s\n",*STRING);
}
int main (int argc, char *argv[])
{
char* STRING;
Initialize(&STRING);
printf("2: %s\n",STRING);
free(STRING);
return 0;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句