0
A
回答
3
声明
char *buf[1024];
使得buf
指针数组以char
。换句话说,它可以用作1024个字符串的数组。
声明
char buf[1024];
声明一个单个字符数组,即最多可包含1024个字符(或1023个字符加上终止子的字符串)。
1
char buf[1024];
声明char
类型的长度为1024 char *buf[1024]
阵列将声明一个数组与char *
类型的1024种元素,其可用于以指向1024名的字符串。这两个数组都会在堆栈中声明。
C字符串只是一个以NULL结尾的数组char
。因此,char buf[1024];
可能包含一个字符串,其末尾有1023个字符,并且为空字符。如果您想要一个指向可包含字符串的char
数组的指针,则char *buf[1024]
是声明它的错误方法。你需要malloc
空间为它在堆上:
char* pBuf = (char*) malloc(1024);
1
char buf[1024];
是字符数组,这意味着你可以把几个字符在只有一个变量。在这种情况下,您的阵列最多可以存储1024个字符。
1
有两种方法可以在C中创建字符串,您可以使用char buf[1024]
静态分配一个字符串,这意味着您在编译时声明一个大小为1024的字符串;或动态使用char *buf
,这意味着你正在声明一个指向char的指针(它也可以被看作是一个指向字符串的指针),然后可以使用malloc
分配所需的大小。
正如在其他答案中提到的,char *buf[1024]
声明一个char指针数组而不是一个字符串。
相关问题
- 1. 是一个常量字符指针,指向一个常量字符或指向字符的常量指针吗?
- 2. 初始化一个字符指针C++
- 3. C指针,指针,字符
- 4. 获取指针,而不是字符串
- 5. C函数大写指针字符串的第一个字符
- 6. C字符数组指针不是一个有效的语句
- 7. 复制一个字符一个struct指针字符
- 8. 指定一个字符串值指针
- 9. 如何比较一个字符串与c + +中的指针字符串
- 10. C指针铸造:单个int指针双字符指针
- 11. 字符指针在c
- 12. 检查一个指针是否有一些字符串C++
- 13. 指向字符数组的第一个字符的指针?
- 14. 删除多个字符指针
- 15. 插入几个字符而不是一个字符串
- 16. 指针的第一个字符
- 17. 返回一个字符串指针
- 18. 一个字符串指针的副本
- 19. 创建一个全局字符指针
- 20. 与NOWAIT T-SQL RAISERROR只打印一个字符,而不是整个字符串
- 21. 字符指针指针数组用C
- 22. 加载文件与字符指针,C
- 23. C++:使用STRCPY与指针字符串
- 24. 与字符指针和整数指针
- 25. 存储在指向C中多个字符串的指针数组中的单个字符串存在问题
- 26. c字符串指针
- 27. c字符串指针
- 28. C字符数组指针
- 29. 指针 - 字符串C++
- 30. c char字符指针