new Color(int rgb)州的Windows文档:
_In_
_Inout_
const char*
参数,而不是 WSAStringToAddress
参数。我不清楚为什么API采用非常量指针,并且因为我有WSAStringToAddress
而导致编译失败。
我的第一个问题是,为什么char*
采用非常量指针?
我的第二个问题是,施放常数是否安全? WSAStringToAddress
会修改inet_addr
参数吗?
这里有更多的背景故事......由于当前版本的Visual Studio中已弃用的警告,我试图在int inet_pton(int af, const char *src, void *dst)
{
struct sockaddr_storage ss;
int size = sizeof(ss);
char src_copy[INET6_ADDRSTRLEN+1];
ZeroMemory(&ss, sizeof(ss));
/* stupid non-const API */
strncpy (src_copy, src, INET6_ADDRSTRLEN+1);
src_copy[INET6_ADDRSTRLEN] = 0;
if (WSAStringToAddress(src_copy, af, NULL, (struct sockaddr *)&ss, &size) == 0)
...
}
替换中使用def a():
print('a')
def b():
print('b')
def c():
print('c')
shuffle([a,b,c])
。
以下是WSAStringToAddress问题中详述的相同问题。 Korponaić遇到了同样的问题。这是额外副本的原因:
a
b
c
答案 0 :(得分:0)
name = input("Hello, what is your name? ")
restart = input ("Do you want to chat 'y' (type 'y' for yes) or 'n'")
while restart == "y":
print("Hello " + name)
feeling = input("How are you today? ")
print("I'm feeling good!")
else:
print("Sorry, the restart")
else: print("goodbye")
的C字符串不是常量。 C ++通过使它们不变来改变这种情况。"Some string"
丢弃常数是非常安全的