我正在做一个工作,我收到了一些带有一些“字符串” typedef的代码,以简化字符串的使用,但是现在我在理解代码及其工作方式时遇到了一些麻烦。 你们可以帮我吗?
//----------- THIS IS THE CODE HANDED TO ME -----------------------------
#define MAX_STRING 256
#define MAX_STRING_VECTOR 1024
typedef char String[MAX_STRING];
typedef String StringVector[MAX_STRING_VECTOR];
//----------- THIS IS THE CODE I WROTE -----------------------------
StringVector strV;
String str;
*str = "Hello";
*(strV) = str;
它显示的错误是“分配给具有数组类型的表达式”。
谢谢你们!
答案 0 :(得分:1)
在C语法中,不允许将char
的数组分配给str
,例如strcpy
,其中带有字符串字面量(初始化除外)。
请使用str
将字符串分配给数组。要通过Hello
初始化String str = "Hello";
,请使用StringVector strV;
String str = "Hello";
strcpy(*strV, str);
。
例如:
str
或者如果不需要StringVector strV;
strcpy(*strV, "Hello");
:
strcpy()
注意:<string.h>
在标头def listcachedir(directory):
def decorator(func):
@wraps(func)
def wrapper(self):
# Join base cache dir to directory
fdir = self.locate(directory)
if os.path.isdir(fdir):
return os.listdir(fdir)
else:
raise CacheNotFoundError()
return wrapper
return decorator
中声明。