atoi()函数使用注意事项

atoi (表示 alphanumeric to integer)是把字符串转换成整型数的一个函数


int atoi(const char *nptr);

参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。包含在头文件stdlib.h中


注意:atoi要检测到非数字或者‘\0’才会结束,则他会检测到字符串的长度+1位,如果有多线程操作内存,将你申请的字符串占用内存片的后面内存占用并修改,可能会出现转化错误。所以用来存储需要转化的字符串的内存要多申请一个字节。

char *bf=(char *)os_malloc(5);

os_memset(bf,0,5);

os_memcpy(bf1,&buf[20],4);

year =atoi(bf);

os_free(bf);

 esp8266在时间获取部分,获取年份时出现错误记录在此。





你可能感兴趣的:(C/C++)