我的问题是关于C free()函数,用于释放先前使用malloc()分配的内存块.
如果我有一个结构数据类型由几个指针组成,每个指针指向不同的内存位置,如果我在结构上应用free()会对这些内存位置会发生什么?这些地点也会免费吗?或只是分配指针的内存块?
我正在尝试从客户端浏览器检索客户端证书以验证用户身份.我知道我可以创建一个与控制器同名的文件夹,并使用IIS将其SSL设置设置为需要客户端证书.事实上,我已经尝试了这个并且它有效,但是我不能采用这种方法,因为控制器内部还有其他操作,不需要向用户询问客户端证书.另外我需要在不同的控制器中询问客户端证书.
那么,您是否知道提示用户选择客户端证书的干净(如果可能)方式?
有没有办法将对象传递给Windows服务?我知道方法myServiceController.Star(string [] arg)但我需要传递一个比字符串数组更复杂的对象.实际上,我不需要将对象作为参数传递,我真正需要的是服务可以使用在Windows窗体应用程序中创建的对象.我已经尝试使用System.Web.Script.Serialization.JavaScriptSerializer.Serialize方法将对象转换为Json但我不能,因为该对象包含循环引用.我也试过使用指针,但我不能因为它是一个托管类型的对象.
知道我该怎么办?
我有类似下面的C代码:
struct MyStruct MyFunction (something here)
{
struct MyStruct data;
//Some code here
return data;
}
Run Code Online (Sandbox Code Playgroud)
返回值是数据存储块的引用还是副本?MyFunction应该返回struct MyStruct*(带有相应的内存分配)而不是struct MyStruct吗?
在C中是否有任何方法可以知道以前是否已使用free()释放了内存块?我能做点什么......
if(isFree(pointer))
{
//code here
}
Run Code Online (Sandbox Code Playgroud)