你如何清除C中的字符串向量?

时间:2018-05-20 22:04:37

标签: c arrays pointers matrix

使用全局变量,如:

params_vector[100][100] = {};

是否可以“重置”或“清除”此数组中的值,使其与初始化时的值相等? char *arg[]有很多例子(arg[i] = NULL有效),但没有像这样的“矩阵”。

3 个答案:

答案 0 :(得分:2)

如果这是char的多维数组,您可以重置"只需拨打

即可
#include <string.h>

memset(params_vector, 0, sizeof params_vector);

如果您只需要将每个字符串的第一个字节设置为0,那么使用for循环可能会更有效。

答案 1 :(得分:1)

假设这是一个char的多维数组,例如

char params_vector[N][M];

对于N和M的某些值 - 您需要memset()整个的内容添加到&#39; \ 0&#39 ;;它足以将每个字符串的第一个字符设置为&#39; \ 0&#39;:

for(size_t i = 0; i < N; i++) {
    params_vector[i][0] = '\0';
}

但是,如果N很小,则此优化可能不值得,而且

memset(params_vector, '\0', M * N);

没关系。

答案 2 :(得分:0)

使用memset

memset(params_vector, 0, sizeof(params_vector));