为什么我的程序没有打印出最终结果?
why does my program not print out the final result?
为什么当我 运行 这段代码接收用户输入的字符串时为什么不打印出最终结果?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/* Function Declerations */
/* Global Variables */
char *text = NULL;
int size;
int main(){
/* Initializing Global Variables */
printf("enter a number limit for text: ");
scanf("%d", &size);
/* Initial memory allocation */
text = (char *) malloc(size * sizeof(char));
if(text != NULL){
printf("Enter some text: \n");
scanf("%s", &text);
// scanf(" ");
// gets(text);
printf("You inputed: %s", text);
}
free(text);
return 0;
}
/* Function Details */
实际上最终结果是这样的
enter a number limit for text: 20
Enter some text:
jason
text
已经是 char *
,所以你不必将 &text
传递给 scanf
,而只需传递 text
.
scanf
将指针作为参数以修改指向的值,但是如果将 char **
作为参数传递,您将修改指向字符串的指针而不是指向的字符串
您只需从 &text 中删除地址,因为文本是一个指针,而字符串始终指向第一个字符。
为什么当我 运行 这段代码接收用户输入的字符串时为什么不打印出最终结果?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/* Function Declerations */
/* Global Variables */
char *text = NULL;
int size;
int main(){
/* Initializing Global Variables */
printf("enter a number limit for text: ");
scanf("%d", &size);
/* Initial memory allocation */
text = (char *) malloc(size * sizeof(char));
if(text != NULL){
printf("Enter some text: \n");
scanf("%s", &text);
// scanf(" ");
// gets(text);
printf("You inputed: %s", text);
}
free(text);
return 0;
}
/* Function Details */
实际上最终结果是这样的
enter a number limit for text: 20
Enter some text:
jason
text
已经是 char *
,所以你不必将 &text
传递给 scanf
,而只需传递 text
.
scanf
将指针作为参数以修改指向的值,但是如果将 char **
作为参数传递,您将修改指向字符串的指针而不是指向的字符串
您只需从 &text 中删除地址,因为文本是一个指针,而字符串始终指向第一个字符。