这是我以前从未发生过的事情。
我收到了,Allowed memory size of X bytes exhausted但是我的脚本几乎不占用任何内存。
我用最小的代码创建了一个小的测试脚本,但是它仍然失败!
$ cat x.php
#!/usr/bin/env php
<?php
function ha($msg) {
}
ha("Hi");
Run Code Online (Sandbox Code Playgroud)
$ ./x.php
Fatal error: Allowed memory size of 62914560 bytes exhausted (tried to allocate 1081028648 bytes) in x.php on line 4
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果删除该$msg函数的参数,则不会发出警告。如前所述,我从未发生过这种情况。这php.ini也是正常的。
系统信息:
$ php -v
PHP 5.6.19 (cli) (built: Jun 22 2016 20:13:44)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
Run Code Online (Sandbox Code Playgroud)
$ php -m
[PHP Modules] …Run Code Online (Sandbox Code Playgroud) 我想向PHP脚本发送POST请求.我正在使用Axios:
axios.post('inc/vote.php', {
id: this.selected,
}) .then(function (response) {
console.log(response);
});
Run Code Online (Sandbox Code Playgroud)
在PHP文件中,我尝试这样的东西从axios中检索id变量:
$id = $_POST['id'];
Run Code Online (Sandbox Code Playgroud)
但似乎没有做任何事情.
从请求中检索变量的正确方法是什么?
我有一个奇怪的问题,创建/使用静态库在我的 Ubuntu VM 中有效,但在 macOS 上无效:
ld: warning: ignoring file ./dist/libXXXX.a, building for macOS-x86_64 but attempting to link with file built for macOS-x86_64
Run Code Online (Sandbox Code Playgroud)
创建静态库的命令是:
ar rcs libtest.a obj1.o obj2.o ...
Run Code Online (Sandbox Code Playgroud)
编译器调用:
gcc -g -Wall -Wextra main.c -L./dist -lXXXX -o main
Run Code Online (Sandbox Code Playgroud)
在谷歌上搜索没有产生任何可用的结果,除了这个(可能)相关的问题:
我找不到任何能告诉我__thread关键字/功能是否存在的功能/宏.
例如,我想在没有用户定义的情况下做这样的事情 HAS_TLS
#if HAS_TLS
static __thread int mytlsdata;
#else
static pthread_key_t mytlskey;
#endif
Run Code Online (Sandbox Code Playgroud) 我想拥有可以包含可选参数的函数.当然这不能用C来完成,但它有可能带有一些宏观魔力:
#define _macroWith1Arg(_0, _1, macroName, ...) _ ## macroName
#define _macroWith2Args(_0, _1, _2, macroName, ...) _ ## macroName
#define _macroWith3Args(_0, _1, _2, _3, macroName, ...) _ ## macroName
#define macroWith1Arg(macroName, ...) _macroWith1Arg(_0, __VA_ARGS__, macroName ## _1, macroName ## _0)(__VA_ARGS__)
#define macroWith2Args(macroName, ...) _macroWith2Args(_0, __VA_ARGS__, macroName ## _2, macroName ## _1, macroName ## _0)(__VA_ARGS__)
#define macroWith3Args(macroName, ...) _macroWith3Args(_0, __VA_ARGS__, macroName ## _3, macroName ## _2, macroName ## _1, macroName ## _0)(__VA_ARGS__)
#define _sum_1(_1) (_1)
#define _sum_2(_1, _2) (_1) + (_2)
#define …Run Code Online (Sandbox Code Playgroud) 我有这个循环,它根据用户输入的值创建一定数量的数组.我想在数组名称的末尾包含数组的计数器,使其为:array1 [],array2 [],array3 []等等,每次迭代一次.这可能吗?我们刚开始在大学学习C,所以我对它还不太了解.我尝试了以下方法:
#include <stdio.h>
int main(void)
{
//Variables
int i, columns, column_size;
//Read input
printf("Input number of columns:\n");
scanf("%d", &columns)
//Loop to create arrays
for (i=1; i<=columns; i=i+step)
{
//Read column size
scanf("%d", &column_size);
//Create an array of given size for this column
int column+"i"+[column_size];
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么在第二次调用构造函数时删除了初始化成员变量?
例:
class MyClass {
private:
unsigned myValue;
public:
MyClass(void)
{
this->myValue = 1337;
fprintf(stderr, "myValue: %d\n", this->myValue);
}
MyClass(int myFirstValue)
{
fprintf(stderr, "myValue: %d\n", this->myValue);
}
};
int main()
{
/* Constructor is called */
MyClass myInstance;
/* Call other constructor ; myInstance->myValue is now trashed */
myInstance = 100;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
myValue: 1337
myValue: 1606416392
Run Code Online (Sandbox Code Playgroud)
预期产出:
myValue: 1337
myValue: 1337
Run Code Online (Sandbox Code Playgroud)
有没有办法保持初始化成员变量?