為什么當我運行此代碼以接收用戶輸入的字串時,為什么它不列印出最終結果?
#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
uj5u.com熱心網友回復:
text已經是 a char *,因此您不必傳遞&text給scanf,而只需傳遞text。
scanf將指標作為引數以修改指向的值,但如果您將 achar **作為引數傳遞,您將修改指向字串的指標而不是指向的字串
uj5u.com熱心網友回復:
你只需要從 &text中洗掉地址,因為 text 是一個指標,而字串總是指向第一個字符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/473144.html
