关于指针指向地址的问题

最近做一个项目,有一个循环体,需要对一个数组进行操作,发现一个问题。

    for(i=0;i<6;i++)
    {
      char keybuf_send[3];
      memset(keybuf_send, 0, sizeof(keybuf_send));
      sprintf(keybuf_send, "%d", 15);
      fprintf(stderr,"IntPr:  % ld",keybuf_send);
    }

这个keybuf_send 每次循环指针指向地址,都是同一个?
很奇怪, 这个6次循环都执行一个地址,导致我后续处理的大量问题出现。
是我的代码错了吗? 还是就应该是这样, 那如果我需要不指向同一个地址,该怎么做?

必然是同一个地址

不要在循环内申请空间,循环内申请的空间会在结束的时候释放,那么下一次循环大概率就会继续在原本释放的地方申请空间,比如你i=6,那么就会申请释放空间6次。直接在for之前申请一个足够大的空间,在循环里再通过指针相应的赋值