我正在编写一些可怕的,可怕的代码,我需要一种方法将free()置于语句中间.实际代码是:
int main(){
return printf("%s", isPalindrome(fgets(malloc(1000), 1000, stdin))?"Yes!\n":"No!\n") >= 0;
// leak 1000 bytes of memory
}
Run Code Online (Sandbox Code Playgroud)
我正在使用alloca(),但我无法确定它是否真的可以在我的目标计算机上运行.我的问题是免费返回无效,所以我的代码有这个错误消息:
error: void value not ignored as it ought to be
Run Code Online (Sandbox Code Playgroud)
我有一个明显的想法是:
int myfree(char *p){
free(p);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这很好,因为它使代码更难以阅读,但我不想添加其他功能.
我也简单地尝试过将其free()视为一个函数指针,但我不知道这是否会起作用,而且我对C的理解还不够.
注意:我知道这是一个糟糕的主意.不要在家里尝试这个孩子.
编辑:非常感谢,我通过将我的单行isPalindrome()函数更改为:
return (...)?(calls == 1?free(pLeft),1:1):(calls == 1?free(pLeft),0:0);
Run Code Online (Sandbox Code Playgroud)
(调用跟踪递归深度)
没有更多的内存泄漏!
我有一个三星Spica i5700,它已经更新至Android 2.1。我将手机与名为Run.GPS(http://www.rungps.net)的应用程序一起使用。此应用程序记录数据,例如GPS位置,路线,速度,方位等。它还可以记录心率,只要用户拥有我所拥有的Zephyr HxM蓝牙心率监视器(“ HxM”)。
我可以通过标准的蓝牙实用程序将HxM与手机配对。系统提示输入我输入的PIN,设备显示为“配对但未连接”。
在Run.GPS应用程序本身中,我单击“连接心率监视器”。约30秒后超时,错误消息为“无法连接到心率监视器。请尝试其他设置”。
我使用朋友的HTC Windows Mobile作为控制设备来查看HxM是否在那里工作。是的 Run.GPS应用程序会自动设置波特率(初始设置为9600 IIRC,尽管连接也可以使用更高的波特率),并且可以在各种COM端口以及.Net COM端口之间进行选择。
我在Spica Android上进行了一些测试,以尝试找出蓝牙连接为什么不起作用的原因。以下是我在Run.GPS应用程序中单击“连接到心率监视器”时通过adb连接的一些日志文件。
我会对任何提示感兴趣(包括如果我在此处发布到错误的论坛;-))-是否可以在Android等系统中尝试波特率。我仍然不知道问题是否出在Run.GPS应用程序(我已经在开发论坛上发布了该应用程序)或Android 2.1。我签出了另一个应用程序Endomondo,它也是一个运动跟踪应用程序,仅支持HxM的心率监测。在那里,看起来完全一样的错误发生了-我单击了'Connect Zephyr HxM'。几秒钟后,系统显示“正在连接...”状态,但是超时了,显示为“未连接”。因此,我倾向于寻找Android来解决这个问题。
这是尝试连接时adb logcat的输出
./adb logcat | grep Run.GPS
D/WYNEX> (11551): Excute :: Run.GPS Trainer UV, (null)
E/Run.GPS (11997): Cannot connect to BT device
E/Run.GPS (11997): java.io.IOException: Service discovery failed
E/Run.GPS (11997): at android.bluetooth.BluetoothSocket$SdpHelper.doSdp(BluetoothSocket.java:374)
E/Run.GPS (11997): at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:184)
E/Run.GPS (11997): at ju.a(Unknown Source)
E/Run.GPS (11997): at qk.j(Unknown Source)
E/Run.GPS (11997): at fs.c(Unknown Source)
E/Run.GPS (11997): at le.a(Unknown Source)
E/Run.GPS (11997): at …Run Code Online (Sandbox Code Playgroud) 我正在开发一个需要从openGL应用程序的前端缓冲区读回整个帧的应用程序.我可以劫持应用程序的opengl库并在swapbuffers上插入我的代码.目前,我成功地使用了一个简单但令人难以忍受的慢速glReadPixels命令而没有PBO.
现在我读到了使用多个PBO来加快速度.虽然我认为我已经找到足够的资源来实际编程(并不是那么难),但我还是有一些操作问题.我会做这样的事情:
现在我主要关心的是步骤2和3.我读到关于PBO上使用的glReadPixels是非阻塞的,如果我在那之后发出新的opengl命令会是一个问题吗?那些opengl命令会阻塞吗?或者他们会继续(我的猜测),如果是这样,我猜只有交换缓冲区可能是一个问题,这一个停止或将来自前缓冲区的glReadPixels比交换快几倍(大约每15-> 30ms)或最坏的情况下在glReadPixels仍在向PBO读取数据时,是否会执行swapbuffers?我目前的猜测是这个逻辑会做这样的事情:复制FRONT_BUFFER - > VRAM中的通用位置,复制VRAM-> RAM.但我不知道这两个中哪一个是真正的瓶颈还有更多,对普通opengl命令流的影响是什么.
然后在第3步中.在与普通opengl逻辑分离的线程中异步执行此操作是否明智?目前我认为不是,在执行此操作后,您似乎必须将缓冲区操作恢复到正常状态,并且我无法在原始代码中安装同步对象以暂时阻止这些操作.所以我认为我最好的选择是在读出它们之前定义一个特定的交换缓冲区延迟,所以例如在PBO i%3上调用glReadPixels,在同一线程中调用PBO(i + 2)%3上的glMapBufferARB,导致2帧的延迟.另外,当我调用glMapBufferARB来使用客户端内存中的数据时,这会成为瓶颈还是glReadPixels(异步)成为瓶颈?
最后,如果你有更好的想法来加速opengl中GPU的帧回读,请告诉我,因为这是我当前系统中的一个痛苦的瓶颈.
我希望我的问题很清楚,我知道答案可能也会出现在互联网上,但我主要想出的结果是使用PBO将缓冲区保存在视频内存中并在那里进行处理.我真的需要将前缓冲区读回RAM并且在这种情况下我没有找到关于性能的任何明确解释(我需要,我不能依赖"它更快",我需要解释为什么它更快).
谢谢
我在这里阅读了一些关于如何使用 svnadmin/dump 等操作的问题/答案。实际上我没有正确理解我应该做什么。
我想我必须使用 svnadmin 从 Google 代码库中进行某种转储,但是我从哪里获得这个 svnadmin?
我在 WXP 上使用 TortoiseSVN 1.6.3 并且我的所有 C 文件夹中都没有 svnadmin.exe 命令,我应该在哪里下载这些应用程序?
谢谢!
我正在尝试让我的第一个WPF应用程序使用MVVM,我遇到了一个小小的绑定问题.
设置是我有一个视图&viewModel,它保存用户详细信息(父级),并尝试保持简单,我将该视图的一部分放入一个单独的视图和viewModel(子).子视图定义为UserControl.
我遇到的问题是如何设置子视图的DataContext(UserControl).我的父ViewModel有一个公开子ViewModel的属性,如下所示:
class ParentViewModel: INotifyPropertyChanged
{
public ChildViewModel childViewModel { get; set; }
//...
}
Run Code Online (Sandbox Code Playgroud)
在我的父视图的XAML中(将其DataContext设置为ParentViewModel),我尝试设置子视图的DataContext,如下所示:
<views:ChildView
x:Name="ChildView"
DataContext="{Binding childViewModel}"/>
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.子视图的DataContext设置为与父视图(即ParentViewModel)相同的DataContext,就像我根本没有设置它一样.我也尝试在子视图本身设置DataContext,这也不起作用:
<UserControl x:Class="DietRecorder.Client.View.ChildView"
DataContext="childViewModel"
Run Code Online (Sandbox Code Playgroud)
我找到了几种解决方法.在子视图中,我可以通过在路径中包含ChildViewModel来绑定所有内容:
<SomeControl Visibility="{Binding Path=childViewModel.IsVisible}">
Run Code Online (Sandbox Code Playgroud)
但我不希望子视图对层次结构有这种意识.在代码中设置DataContext也可以 - 但是,我必须在显示父视图后执行此操作,否则在调用Show()时DataContext会被覆盖:
parentView.Show();
parentView.ChildView.DataContext = parentViewModel.childViewModel;
Run Code Online (Sandbox Code Playgroud)
此代码也让我感到不安,LOD违规等等.
这只是DataContext似乎是问题 - 我可以绑定孩子中的其他东西,例如我尝试将FontSize绑定到int属性只是为了测试它:
<views:ChildView
x:Name="ChildView"
FontSize="{Binding Path=someVal}"/>
Run Code Online (Sandbox Code Playgroud)
这很好.
但我确信DataContext的绑定应该起作用 - 我已经看到了类似的这种事情的例子.我错过了一些明显的东西吗?有什么理由不行吗?某处有拼写错误吗?(为了你的利益我改名了,所以无论如何你都无法帮助我).
欢迎任何想法.
编辑
再次回顾这段代码,似乎我在某个地方犯了一个错误,因为父视图中的以下XAML现在似乎有效:
<views:ChildView
x:Name="ChildView"
DataContext="{Binding childViewModel}"/>
Run Code Online (Sandbox Code Playgroud)
我不确定为什么我不能让它最初工作,或者我可能已经改变它以使其工作.也许就像其中一个答案所暗示的那样是INotifyPropertyChanged问题.哦,好吧,向上和向上..
>> XOR(X,X)
??? Undefined function or method 'XOR' for input arguments of type 'logical'.
Run Code Online (Sandbox Code Playgroud)
为什么XOR不能用于逻辑矩阵?
我尝试了一个更简单的例子:
>> A=[1 0;1 0];
>> B=[1 1;0 0];
>> XOR(A,B)
??? Undefined function or method 'XOR' for input arguments of type 'double'.
Run Code Online (Sandbox Code Playgroud)
我该如何正确使用XOR?
我正在寻找创建身份集的简单方法。我只希望能够跟踪遍历图形时是否“看到”了特定对象。
我不能使用常规Set,因为Set使用“ ==”(Scala中的equals方法)来比较元素。我想要的是一个使用“ eq”的集合。
有什么方法可以在Scala中创建一个Set,该Set使用一些应用程序指定的方法测试相等性,而不是在set元素上调用equals?我在寻找可以覆盖但找不到的“ wrapEquals”方法。
我知道我可以使用Java的IdentityHashMap,但是我正在寻找更通用的东西。
我的另一个想法是将每个set元素包装到另一个根据eq实现equals的对象中,但是生成大量新对象只是为了获得一个新的equals实现是浪费的。
谢谢!
我想知道是否有人试图在iPhone上使用HTML5附带的新标签.具体来说,我没有设法使pause()命令工作.以下是该页面的一部分.正如您所看到的,我试图在视频启动后10秒暂停视频.它适用于Mac上的Safari.有没有人设法做到这一点?
<head>
<javascript language="JavaScript">
function timeUpdate()
{
var myVideo = document.getElementsByTagName('video')[0];
var time = myVideo.currentTime;
if (time > 10)
{
myVideo.pause();
}
}
function addListeners()
{
var myVideo = document.getElementsByTagName('video')[0];
myVideo.addEventListener('timeupdate',timeUpdate,false);
}
</script>
</head>
<body onload="addListeners()">
<video controls src="resources/bb_poor_cinderella_512kb.mp4"
poster="resources/background.png">
Video tag not supported!
</video>
</body>
Run Code Online (Sandbox Code Playgroud)
谢谢,
阿里尔
这对我来说是相当愚蠢的,但是如何在页面滚动期间保持背景图像的固定.我有这个css代码,图像是身体的背景而不是<div></div>
body {
background-position:center;
background-image:url(../images/images5.jpg);
}
Run Code Online (Sandbox Code Playgroud)
谢谢让
我有这个属性:
public SubjectStatus Status
{
get { return status; }
set
{
if (Enum.IsDefined(typeof(SubjectStatus), value))
{
status = value;
}
else
{
Debug.Fail("Error setting Subject.Status", "There is no SubjectStatus enum constant defined for that value.");
return;
}
}
}
Run Code Online (Sandbox Code Playgroud)
和这个单元测试
[Test]
public void StatusProperty_StatusAssignedValueWithoutEnumDefinition_StatusUnchanged()
{
Subject subject = new TestSubjectImp("1");
// assigned by casting from an int to a defined value
subject.Status = (SubjectStatus)2;
Assert.AreEqual(SubjectStatus.Completed, subject.Status);
// assigned by casting from an int to an undefined value
subject.Status = (SubjectStatus)100; …Run Code Online (Sandbox Code Playgroud)