小编sud*_*rsh的帖子

在C中模仿Python的strip()函数

我最近在C中开始了一个小玩具项目,并且一直在试图模仿作为python字符串对象一部分的strip()功能的最佳方法.

读取fscanf或sscanf表示字符串被处理到遇到的第一个空格.

fgets也无济于事,因为我仍然有新的线条.我确实尝试了一个strchr()来搜索空格并将返回的指针设置为'\ 0',但这似乎不起作用.

c python string fgets

5
推荐指数
2
解决办法
9610
查看次数

在C中释放()malloc的二维数组的最佳方法

假设我有一个用这样的东西创建的二维数组,

char **foo = (char **) malloc(height * sizeof(char *));
for(i = 0; i <= height; i++) 
    foo[i] = (char *) malloc (width * sizeof(char *));
Run Code Online (Sandbox Code Playgroud)

首先,这甚至是创建像这样的数组的正确方法吗?这里的问题是,'height'和'width'是在运行时设置的东西.

这似乎有效,但这是释放这个2D阵列的最佳策略.免费(funge)听起来不对.通过这里的其他帖子,我想我会逐一释放每一行?

我确实试过这样的事,

for (height = 0; height < ip_ptr->funge_height; height++) {
    free(funge[height]);
} 
free(funge)
Run Code Online (Sandbox Code Playgroud)

然而,这给了我一个双重自由指针异常.这是不是意味着,我不需要管理这段记忆?我的印象是,对于每个malloc的内存,我们应该调用free().

c memory arrays free pointers

1
推荐指数
3
解决办法
2万
查看次数

标签 统计

c ×2

arrays ×1

fgets ×1

free ×1

memory ×1

pointers ×1

python ×1

string ×1