大家说来说C语言的缺点

2020-02-11 09:53发布

我就感觉这个特不方便。
1.我发现,要定义一个数组或是字符串,最好要定义数组的大小,不然,如果后面要用指针来操作这个数组,没办法知道  数组大小,整个程序就OVER。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
wind2100
1楼-- · 2020-02-14 13:48
害得我,这样做了。
//=========================================================================================
typedef struct tStr
{

        u8 Size;
        const u8 * pStr;

}Str_Type;

const u8 StrGoodBye[]      ={"Good Bye"};



const Str_Type Str[]={
   
    {sizeof(StrGoodBye),StrGoodBye},

};
wicy001
2楼-- · 2020-02-14 19:14
 精彩回答 2  元偷偷看……
wicy001
3楼-- · 2020-02-14 23:57
wind2100 发表于 2014-11-29 13:19
typedef struct tStr
{
   char strA[6];


数组的大小,和数组里存的数据个数,是两个不同的概念。

这种方法,只是针对你LZ位,说明用指针可以返回数组大小而已。 平时取数组大小,都是用12楼的方法。

现在才知道,你原来想取字符串的长度, 请用strlen()函数,用之前包含头文件<string.h>。
snoopyzz
4楼-- · 2020-02-15 03:52
wind2100 发表于 2014-11-29 13:25
害得我,这样做了。
//=============================================================================== ...

百度 strlen 可以满足你。

你这基本功不扎实呀。
richyhuang
5楼-- · 2020-02-15 05:54
彼岸花开@ 发表于 2014-11-29 10:15
1、如果在初始化的时候,没有定义数组的大小。在后边使用的时候数组的中被赋值。。。那么使用sizeof 统计 ...

完全错误, C语言不存在因为没定义大小就可以 随意增加数组大小的可能...

C89中不允许不指定数组大小的同时不给初始数据
C99允许, 但定义出的是0字节数组

另, C89数组只能静态定义大小, C99局部数组可以动态定义大小
但都不存在定义后直接增加的可能性...你这么做就是数组越界
子鱼
6楼-- · 2020-02-15 08:29
世界上面没有什么东西是完美的.c语言也不例外,

一周热门 更多>