我的重复方法出了问题。
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*/ }
它们的长度可能不同。
问候, 扬
答案 0 :(得分:0)
它似乎适用于其他人所以这个问题可以关闭我认为......必须弄清楚问题是什么......