我附上以下代码块
import json, re
f = open('../file/path/here')
d = json.loads(f.read())
patents = d['PRODUCT']['attribs']
for key,val in patent_attribute.items():
patent_group = re.search('^(.\d)\d+', val['name']).group(1) #returns U1 U2,U3,.. or P1,P2,P3,..
#do whatever with patent_group(U1/P1 etc)
我应该使用吗? 一个= NULL; 免费后(a);
free(a)释放内存块, 但不删除已经存在的值 存储到此块。
我是对的吗?
答案 0 :(得分:-1)
在程序执行free(a)
后调用a="MeUni";
是错误的,因为此时a
不再指向malloc(10)
调用的内存块分配
此外,a=NULL;
将不“删除a
指向的内存块的值”。
我怀疑你的程序存在很多问题,但是很难说它们是什么,因为很难说你希望程序会做什么。
您似乎对指针是什么以及如何使用它们有一个非常弱的概念。如果你想学习C和/或C ++,那么你将需要学习一些好的教程和一些好书,并且可能需要上课。
答案 1 :(得分:-1)
Ohters已经评论过使用malloc / free,而不是使用std :: string,这显然是一个玩具程序等等,他们是对的;但要简要地回答一下你的问题:
如果这是一个严肃的程序,你必须考虑你不再需要分配内存的地方,并且确实可以免费发布它。肯定在之前返回0'可能更早。不释放它会泄漏内存。
在同样的假设下,免费后不需要清除指针,但它确实是一个好主意,因为它可以防止意外使用不再属于你的内存位置访问。