这是我正在处理的代码。。。

while(temp[i]!=0){
    while(temp[i]!=3){
        FrameBuffer[a]=temp[i];
        i++;
        a++;
    }
    FrameBuffer[a]=temp[i];
    printf(" Framebuffer: %s ", FrameBuffer);
    result=layer1(FrameBuffer,PacketAction);
    i++;
    a=0;
}

问题是我希望帧缓冲区每次通过内部while循环时都被重置(循环开始时帧缓冲区的大小为0)。我试过使用free(FrameBuffer),但由于多次释放数组,因此出现错误。我也尝试过编写FrameBuffer=NULL,但这不起作用。任何帮助都将不胜感激。谢谢您!

最佳答案

如果您只需要在每个内部循环开始之前初始化帧缓冲区,则可以使用memset-:

while(temp[i]!=0) {
    memset(FrameBuffer, 0, sizeof(FrameBuffer));

    while(temp[i]!=3) {

09-20 02:14