在C語言中,字符串是一系列字符的集合,以空字符(‘\0’)結尾。字符串可以存儲在數組或指針中。關于內存分配,有兩種常見的方法:
#include<stdio.h>
int main() {
char str[20]; // 分配20個字符的內存空間
scanf("%s", str);
printf("Input string: %s\n", str);
return 0;
}
在這個例子中,我們使用一個大小為20的字符數組來存儲字符串。注意,當使用scanf()
函數時,需要確保輸入的字符串長度不超過數組的大小,否則會導致緩沖區溢出。
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
int main() {
char *str;
int size;
printf("Enter the size of the string: ");
scanf("%d", &size);
str = (char *)malloc((size + 1) * sizeof(char)); // 分配內存空間
if (str == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
printf("Enter the string: ");
scanf("%s", str);
printf("Input string: %s\n", str);
free(str); // 釋放內存空間
return 0;
}
在這個例子中,我們使用malloc()
函數動態地分配內存空間來存儲字符串。注意,我們需要額外分配一個字節來存儲空字符(‘\0’)。在程序結束時,使用free()
函數釋放已分配的內存空間。