不使用malloc重复不同的字符串模式

时间:2014-01-29 18:01:31

标签: c string repeat

我的重复方法出了问题。

repeat("11111", 10);
repeat("22222", 10);

应产生输出1111111111(10x1)和2222222222(10x2) 但实际输出都是1111111111(10x1),所以我的缓冲区仍然是相同的。

这是我的代码:

static char buffer[PAYLOAD_SIZE];
static void repeat(char *pattern, int size) {
    int pattern_size = strlen(pattern);
    int n = size / pattern_size;   //quotient of division
    int rem = size % pattern_size; //remainder of division

    int i; char *p;
    for (i=0, p = buffer; i < n; ++i, p += pattern_size ) {
        memcpy(p, pattern, pattern_size);
    }
    memcpy(p, pattern, rem);
}

重要的是没有malloc。我正在迭代模式列表

char *patterns[5] = { /*5 different patterns*/ }

它们的长度可能不同。

问候, 扬

1 个答案:

答案 0 :(得分:0)

它似乎适用于其他人所以这个问题可以关闭我认为......必须弄清楚问题是什么......