我正在为sq(n)
def multiply(x):
def multiply_x(f):
def f_(*k):
return x*f(*k)
return f_
return multiply_x
@multiply(3)
def sq(n):
return n*n
和int *occurrences
指针分配内存,然后在分配内存的函数结束时,我释放了它们。但是,当我编译程序时,出现int *wordCounts
错误。是由char **uniqueWords
,double free or corruption (!prev) aborting
引起还是我在malloc
内部初始化它们的原因?
PS:我说的是free
方法,该方法位于末尾
for loop
答案 0 :(得分:2)
您正在覆盖第185行上指向堆内存的指针的值:
uniqueWords[i] = wordList[i];
这意味着以后free
时,实际上是在释放wordList
中分配的行。现在您有两个问题:
wordList
行时,这将是两次免费uniqueWords
行的引用。使用strcpy
分配给动态分配的字符串,而不是=
操作。