小编Cor*_*man的帖子

增加char指针

以下代码在第二行给出了seg错误:

 char *tester = "hello";
 char a = (*tester)++;  // breaks here
 printf("Char is %c\n", a);
Run Code Online (Sandbox Code Playgroud)

以下代码有效:

 char *tester = "hello";
 a = *tester;
 a++;
 printf("Char is %c\n", a);

 // prints i
Run Code Online (Sandbox Code Playgroud)

为什么不能在一次操作中完成?

c increment char

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

在qsort中解释C代码行

我一直在寻找qsort的不同实现,并且在这里找到了一行(https://code.woboq.org/userspace/glibc/stdlib/qsort.c.html),我不明白.它看起来像一个函数指针声明.我很感激任何帮助.我已经根据需要包含了尽可能多的代码(注意到这一行),我想回答这个问题.如果没有,请告诉我,谢谢.

typedef struct
{
    char *lo;
    char *hi;

} stack_node;


void _quicksort (void *const pbase, size_t total_elems, size_t size, cmp_t cmp, void *arg)
{

    char *base_ptr = (char *) pbase;

    const size_t max_thresh = 4 * size;

    if (total_elems == 0)

        return;

    if (total_elems > 4)
    {
        char *lo = base_ptr;
        char *hi = &lo[size * (total_elems - 1)];
        stack_node stack[(8 * sizeof(size_t))];
        stack_node *top = stack;

        /* Line below is a function pointer declaration?  Initializes struct? */ …
Run Code Online (Sandbox Code Playgroud)

c syntax qsort

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

Struct变量使用printf更改值

我有一个带有整数指针数组的结构.第一个指针的值在对printf的调用之间发生变化.除非我通过函数生成结构,否则不会发生这种情况.代码如下.有人能告诉我发生了什么吗?谢谢.

 struct a {

     int *nums[10];

 };

 struct a *makeS();


 int main(int argc, char *argv[]){

      struct a *_b = (struct a*) malloc(sizeof(struct a));

      struct a *_c = makeS();

      int i = 1;

      _b->nums[0] = &i;

      printf("Num is %d\n", *_b->nums[0]);  // prints 1
      printf("Num is %d\n", *_b->nums[0]);  // prints 1
      printf("Num is %d\n", *_b->nums[0]);  // prints 1
      printf("Num is %d\n", *_b->nums[0]);  // prints 1 … etc.


      printf("Num is %d\n", *_c->nums[0]);  // prints 1
      printf("Num is %d\n", *_c->nums[0]);  // prints 0
      printf("Num …
Run Code Online (Sandbox Code Playgroud)

c struct pointers

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

标签 统计

c ×3

char ×1

increment ×1

pointers ×1

qsort ×1

struct ×1

syntax ×1