小编joh*_*ohn的帖子

在C中str == NULL和str [0] =='\ 0'之间有什么区别?

我想知道的区别str == NULLstr[0] == '\0':

int convert_to_float(char *str, double *num)
{
    if ((str == NULL) || (str[0] == '\0'))
        return(-1);

    *num = strtod(str, (char **)NULL);
    return(0);
}
Run Code Online (Sandbox Code Playgroud)

我在Linux上使用gcc.

c gcc pointers cstring

52
推荐指数
6
解决办法
9731
查看次数

如何在ARM体系结构上检查C应用程序中的内存泄漏

我正在用C语言编写使用ARM体系结构的设备.我想检查我的应用程序中的内存泄漏.正如在我的设备中,iam工作(ARM体系结构)不支持Valgrind ..所以我可以使用其他选项来检查我的应用程序中的内存泄漏.有没有办法检查内存泄漏...或者请指导我在编写代码时必须采取的预防措施,以避免内存泄漏,尤其是在处理字符串和动态内存分配时...?

平台:Linux,gcc编译器

c embedded gcc memory-leaks memory-management

7
推荐指数
2
解决办法
2809
查看次数

如何检查C 中的缓冲区?

我有一个大小为 1500 的缓冲区。在该缓冲区中,我需要检查 15 个字节是否全为零(从 100 到 115)。我们怎样才能做到这一点(如果我们不使用任何循环)?数据的类型是“unsigned char”,实际上它是一个unsigned char数组。

平台:Linux、C、gcc 编译器

使用memcmp()是否正确?我正在从智能卡读取一些数据并将它们存储在缓冲区中。现在我需要检查最后 15 个字节是否连续为零。我memcmp()在这里提到是因为我需要一种有效的方法;智能卡读取已经花费了一些时间。

或者按位比较是否正确。请建议。

c linux string

4
推荐指数
1
解决办法
7773
查看次数

如何避免c开发过程中的内存泄漏

我想用C编程.我想知道在开发本身时我们应该遵循什么样的做法来避免内存泄漏.请提及在处理字符串和动态内存分配时要特别注意的事项.

c linux gcc memory-leaks

3
推荐指数
2
解决办法
949
查看次数

如何从c代码中删除所有调试printf语句

我想从我的代码中删除所有调试printf语句.如何在不使用条件调试的情况下通过打开/关闭调试语句来执行此操作?

我只使用printf来检查一个特定的值是否正在变弱......如下所示...:printf("value read%d \n",a);

c linux embedded

3
推荐指数
1
解决办法
6611
查看次数

头文件中声明和#defines 的首选顺序

我正在Linux平台上用C语言编程。#defines我想知道应该是声明和头文件中的顺序。

例如,如果我的头文件包含以下内容,任何人都可以建议我安排所有这些声明、宏、外部声明等函数的完美顺序应该是什么。

就可读性和编码标准而言,这对于在头文件中正确排列所有这些内容非常有益。

下面是示例头文件(我想按正确的顺序排列以下内容):

 #include <pthread.h>                   //  Including Header files 
 #include <signal.h>

 #define IMAGE_DIRECTORY                 "Abcdefgh..."   //  Providing #defines 
 #define FAILED_TO_RECOGNIZE             "Xykbkksk..."
 #define PROGRESS_FRAME_COLOR            "#8e8ea1"
 #define FRAME_BG_COLOR                  "#7c90ac"      

 #define PRINT_FUNCTION_NAME fprintf(stderr, 
                   "CTRL IN FUNCTION : %s\n",__func__);   // Macro like functions 
typedef struct {                                           
        int userId;                                      // Structure
         char name[32], rollNo[32];
         char class[16], section[16];
         unsigned long Id;
 }data_type;

int noOfUsersList=0, usersListCount=0;                   // Global variables 
Run Code Online (Sandbox Code Playgroud)

c linux macros coding-style header-files

2
推荐指数
1
解决办法
1万
查看次数

如何将结构指针数组初始化为零

我正在为通过malloc构造的指针数组分配内存,并希望用零初始化它,如下所述.假设结构包含int和char [](字符串)类型的成员?那我怎么能把这个结构归零呢.

代码:假设我想分配100

struct A **a = NULL;
a = (struct **)malloc(sizeof( (*a) * 100);
for(i=1; i < 100; i++)
     a[i] = (struct A*)malloc(sizeof(a));
Run Code Online (Sandbox Code Playgroud)

还请解释一下为什么有必要用零初始化.

平台:Linux,编程语言:C

我知道我们可以使用memset或bzero.我试过它它崩溃了,可能是我正确使用它所以请告诉我正确的方法.

c linux pointers structure

1
推荐指数
1
解决办法
3048
查看次数

如何用条件运算符表示三种情况?

是否可以使用条件运算符表达案例?例如 :

 if(rval==1)
     DO THIS 1;
 else if(rval==2)
     DO THIS 2;
 else if (rval ==3)
     DO THIS 3;
Run Code Online (Sandbox Code Playgroud)

c c++ conditional-operator

0
推荐指数
2
解决办法
250
查看次数

分叉过程并等待孩子退出

Iam用C语言编程并试图学习分支过程的概念,但是我对以下程序的输出感到困惑.所以我需要对此进行一些解释才能继续.

        int main() {
            pid_t pid;
 24         int status, died;
 25         switch(pid = fork()){
 26                 case -1: printf("Can't fork\n");
 27                          exit(-1);
 28                 
 29                 case 0 : printf(" Child is sleeping ...\n"); 
 30                          sleep(5); // this is the code the child runs
 31                          //exit(3); 
 32                          
 33                 default:
 34                          printf("Process : parent is waiting for child to exit\n");
 35                          died = wait(&status); // this is the code the parent runs 
 36                          printf("Child's process table cleared...\n");
 37         }
 38         return 0;
 39 } …
Run Code Online (Sandbox Code Playgroud)

c linux fork process linux-kernel

0
推荐指数
1
解决办法
286
查看次数