1)为什么/* test1 */块下的代码不打印任何东西,但是/* test2 */打印的代码是否正确?
2)如何va_arg(va, char*)在/* test 1 */代码块中使用.
void rdfDBG(int dbglevel, const char *fmt, ...) {
va_list va;
#if 1 /* test 1 */
char* logbuf;
if ((logbuf = calloc(0x0, LOGBUFFERSIZE))== NULL)
fprintf(stderr, "out of memory\n"); /* 1. Is there a better way instead of using fprintf? */
va_start(va, fmt);
(void) vsnprintf(logbuf, strlen(logbuf), fmt, va); /* 2. print nothing */
va_end(va);
free(logbuf);
#endif
#if 0 /* test 2 */
va_start(va, …Run Code Online (Sandbox Code Playgroud) 我收到了一组扩展名为.bak的数据文件,但非技术人员告诉我它来自MySQL数据库。查看如何将SQL Server .bak文件导入MySQL 并打开.mdf文件 ,我怀疑它是否真的是MYSQL,因为列表中有一个.mdf文件,在我看来,这是来自SQL Server数据库。
我的问题是,(a)MYSQL是否会将4GB数据文件自动备份到.bak扩展名?(b)已经5年了,除了SQL Server 2008 Express,还有其他新版本可以用来尝试打开.bak吗?
我已经定义了一个Color类,如下所示.由于我需要存储多种颜色及其各自的节点ID(具有颜色),因此我制作了一个列表颜色来存储它们.但是,每次更改节点颜色时,我都不想直接更新列表颜色(另一个函数将决定是否更新),因此我需要在调用决策函数之前将颜色副本存储到*tmp_colors*,如果结果为是,则使用*tmp_colors*更新颜色.
我设法制作了新列表*tmp_colors*的副本,但*tmp_colors [0]*仍然指向colors [0],导致两个列表的更新.
class Color:
__elems__ = "num", "nodelist",
def __init__(self):
self.num = 0
self.num_bad_edge = 0
def items(self):
return [
(field_name, getattr(self, field_name))
for field_name in self.__elems__]
def funcA():
nodeCount = 2
colors = []
for i in range(0, nodeCount):
colors.append(Color())
colors[0].num = 2
colors[0].nodelist = [10,20]
colors[1].num = 3
colors[1].nodelist = [23,33, 43]
print "colors"
for i …Run Code Online (Sandbox Code Playgroud) 我有一个日期时间列表,其中包含多个[开始时间,结束时间]组合.如何有效地根据开始时间对列表进行排序?
[
[datetime.datetime(2013, 1, 2, 14, 0), datetime.datetime(2013, 1, 2, 16, 0)],
[datetime.datetime(2013, 1, 1, 9, 0), datetime.datetime(2013, 1, 1, 10, 0)],
[datetime.datetime(2013, 1, 1, 12, 0), datetime.datetime(2013, 1, 1, 16, 0)],
]
Run Code Online (Sandbox Code Playgroud)
我知道sorted()和attrgetter()适用于namedtuple列表,但是有没有适用于上述场景的排序函数?
我尝试使用qsort对一个double值数组进行排序,但它似乎不起作用.想知道这里出了什么问题?
#include <stdio.h>
#include <stdlib.h>
static double compare (const void * a, const void * b)
{
if (*(double*)a > *(double*)b) return 1;
else if (*(double*)a < *(double*)b) return -1;
else return 0;
}
int main() {
int idx;
double* sum_least_square_err;
sum_least_square_err = (double*) malloc (2500*2500*sizeof(double));
sum_least_square_err[0] = 0.642;
sum_least_square_err[1] = 0.236;
sum_least_square_err[2] = 0.946;
idx = 3;
qsort(sum_least_square_err, idx, sizeof(sum_least_square_err), compare);
int i;
for (i=0; i<idx; i++){
fprintf(stderr,"sum_least_square_err[%d] = %.3f\n", i, sum_least_square_err[i]);
}
fprintf(stderr,"MAEE = %.3f\n", sum_least_square_err[idx/2]);
free(sum_least_square_err);
} …Run Code Online (Sandbox Code Playgroud)