我正在向我的方法传递一个指向char数组的指针,以及char数组实际高度的值.我循环查看所有值是否为0,如果它们返回0,否则返回1.
该方法用作测试,以查看是否应释放内存,如果指针满0,则将指针设置为null.我遇到的问题是该程序最终应该有"一些不自由"的记忆,所以我不知道它是否正确地做了 - 而gdb我极其困难.
谢谢阅读
int shouldBeNull(char *charPointer, int sizeOfCharArray)
{
int isIn = 0;
int i = 0;
while(i < sizeOfCharArray){
if(*charPointer != '0'){
isIn = 1;
break;
}
i++;
charPointer++;
}
return isIn;
}
Run Code Online (Sandbox Code Playgroud)
当你说"...所有值都为零......"时,我假设你的二进制值为零,而不是字符'0'......
if(*charPointer != '0'){
Run Code Online (Sandbox Code Playgroud)
这是字符零(0x31)而不是空字符(0x00).如果您尝试检查零字节,请尝试以下操作:
if (*charPointer != '\0') {
Run Code Online (Sandbox Code Playgroud)
此外,您没有递增或偏移字符指针charPointer,因此您总是测试第一个字符.
if (*charPointer++ != '\0) {
Run Code Online (Sandbox Code Playgroud)
...要么...
if (*(charPointer + i) != '\0) {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
210 次 |
| 最近记录: |