问题列表 - 第36238页

C,struct的第一个成员

我还有另一个新手C问题:为什么结构的第一个成员在未初始化时返回的地址与结构自己的指针地址不相似?

例:

struct Metadata {
    int message_ID;
    //other members...
    //...
};

struct Metadata* baseMetadataPtr = (struct Metadata*) malloc(sizeof(struct Metadata)*100);

printf("baseMetadataPtr: %d\n", baseMetadataPtr);
//consoll says "baseMetadataPtr: 2636496"

printf("baseMetadataPtr->message_ID: %d\n", baseMetadataPtr->message_ID);
//consoll says "baseMetadataPtr->message_ID: 2621636"
Run Code Online (Sandbox Code Playgroud)

c

1
推荐指数
1
解决办法
1130
查看次数

为什么平均阻尼会神奇地加速定点计算器的收敛?

我正在阅读SICP,并且作者在计算函数的固定点时研究了平均阻尼技术.我知道在某些情况下,即平方根是必要的,以阻止函数的振荡,y = x/y但我不明白为什么它神奇地帮助定点计算函数的收敛.救命?

编辑

显然,我有点想过这个.我似乎无法理解为什么在重复应用时平均一个函数本身会加速收敛.

algorithm math sicp

8
推荐指数
1
解决办法
2453
查看次数

iPhone:我的应用程序是否需要支持多任务处理?

在上传到应用商店之前,这是否是强制性要求?据我所知,让我的应用程序兼容多任务处理是我需要实现的额外功能.(?)

iphone objective-c app-store

0
推荐指数
1
解决办法
468
查看次数

sizeof(int)在托管实现上是否可以为1?

我的观点是,如果由于需要能够保存或(-1)的任何可能值,C实现不能满足某些stdio函数(特别是fputc/ fgetc)的规范.这个推理是否正确?sizeof(int)==1intunsigned charEOF

(显然sizeof(int)不能为1,如果CHAR_BIT是8,由于所需的最小范围int,所以我们隐含地仅讨论与CHAR_BIT>=16例如DSP的实现,其中典型的实现将是独立实现而不是托管实现,因此不需要提供stdio.)

编辑:在阅读了答案和一些链接引用后,对托管实现可能有效的方式有一些想法sizeof(int)==1:

首先,一些引用:

7.19.7.1(2-3):

如果未设置stream指向的输入流的结束指示符并且存在下一个字符,则fgetc函数将该字符作为转换为int的unsigned char获取并为该流提前关联的文件位置指示符(如果定义).

如果设置了流的结束指示符,或者流处于文件结尾,则设置流的结束指示符并且fgetc函数返回EOF.否则,fgetc函数返回stream指向的输入流中的下一个字符.如果发生读取错误,则设置流的错误指示符,并且fgetc函数返回EOF.

7.19.8.1(2):

fread函数在ptr指向的数组中,从stream指向的流中读取大小由size指定的nmemb元素.对于每个对象,对fgetc函数进行大小调用,并按顺序读取存储在unsigned char数组中的结果,该数组恰好覆盖对象.流的文件位置指示符(如果已定义)按成功读取的字符数提前.

思考:

  • 读回unsigned char范围之外的值int可能只是在实现中具有未定义的实现定义的行为.这是特别令人不安,因为它意味着使用fwritefread存储二进制结构(这同时导致不可移植的文件,应该是你可以在任何单个实现便携执行操作)可能出现的工作只是默默地失败.基本上总是导致未定义的行为.我接受的实现可能没有一个可用的文件系统,但它的很多难以接受的实现可以有一个文件系统,当你试图用它那就会自动调用鼻鬼,没有办法判断它的不可用. 现在,我意识到行为是实现定义的,而不是不确定的,它不是这么不安,我想这可能是一个有效的(虽然不受欢迎)的实现.

  • 实现sizeof(int)==1可以简单地将文件系统定义为空且只读.然后,就没有办法应用程序可以读取本身写的,只从一个输入设备的任何数据stdin可能被实现为只给予积极的char配合在价值观int.

编辑(再次):从C99理由,7.4:

EOF传统上是-1,但可以是任何负整数,因此可以与任何有效的字符代码区分开.

这似乎表明sizeof(int)可能不是1,或者至少这是委员会的意图.

c

41
推荐指数
3
解决办法
2573
查看次数

最佳实践WPF棱镜资源

我有一个带有几个模块的WPF棱镜桌面应用程序.在过去,我将所有本地化资源放在基础架构程序集中的公共资源文件中,并在所有模块中引用它.

但最近我一直在想,从维护的角度来看,这确实是正确的方法.从本质上讲,它也有点打破模块化.从长远来看,模块中的模块特定资源文件本身是一种更好的方法吗?

所有的想法都赞赏

wpf resources prism cal

6
推荐指数
1
解决办法
2388
查看次数

SQL更新top1行查询

以下查询正在运行:

update  top(1) ShipBillInfo 
set     shipfirstname='kkk' 
where   CustomerId='134';
Run Code Online (Sandbox Code Playgroud)

但如果我尝试按某些Id订购,则显示错误:例如:

update  top(1) ShipBillInfo 
set     shipfirstname='kkk' 
where   CustomerId='134' 
order by 
        OredrGUID desc;
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

31
推荐指数
3
解决办法
7万
查看次数

用于音频和视频等大型文件的数据库

我的应用程序创建了大量文件,每个文件高达100MB.目前我们将这些文件存储在文件系统中,该文件系统运行良好.但我想知道是否有更好的解决方案将文件存储在某种文件数据库中.数据库的简单优势在于它是否可以拆分文件并以小块而不是一个100mb文件存储.

database

2
推荐指数
1
解决办法
287
查看次数

如何在Python中修改字符串中的单个字符?

如何在Python中修改字符串中的单个字符?就像是:

 a = "hello"
 a[2] = "m"
Run Code Online (Sandbox Code Playgroud)

'str'对象不支持项目分配.

python string

16
推荐指数
3
解决办法
1万
查看次数

删除无法访问的Mongo分片

我有一个带有3个分片的MongoDB分片设置:shard0000,shard0001和shard0002。现在运行shard0002的计算机已关闭,这导致我的所有查询均失败。我想从设置中暂时删除shard0002,并继续使用前两个分片。假设我只使用位于前两个分片中的未分片集合,那应该可行,对吗?

我首先尝试的是:db.runCommand({removeshard: 'IP:PORT'})这显然无济于事,因为它只是将分片置于排空模式,该模式永远不会终止(因为它已关闭)。然后,我尝试连接到配置服务器,并db.shards.remove({_id: 'shard0002'})在配置数据库上进行操作,然后重新启动mongos,以便它重新加载配置。现在,无论何时我尝试做任何事情,我都会得到“找不到碎片:shard0002”。

有什么方法可以让Mongo知道我暂时不关心该碎片,然后在可用时重新启用它。

sharding mongodb

6
推荐指数
2
解决办法
4773
查看次数

如何在draggable插件(jQuery)中获取移动对象的方向?

我有对象(div-box),它是可拖动的(我正在使用jQuery).如何获取访问者移动方向的信息?示例:用户将其向左拖动,我想知道它,怎么样?

jquery jquery-ui-draggable

3
推荐指数
1
解决办法
8529
查看次数